[Ipopt] Cannot build Ipopt on Windows with MSVC
Stefan Vigerske
stefan at math.hu-berlin.de
Wed Aug 31 07:59:00 EDT 2016
Hi,
you might want to decide first whether you want to build 32bit or 64bit
binaries. That is, use -arch ia32 for the ifortvars if your MSVC is
32bit and use -arch intel64 for the ifortvars if your MSVC is 64bit.
In the output you send, configure tried to use the Intel C/C++ compiler
(icl) and that didn't seem to work. There is this strange line in
config.log:
link: cannot create link 'conftest.obj' to
''$'\357\273\277''-out:conftest.exe': No such file or directory
Maybe it didn't work because you only run ifortvars (?).
You can force it to use the MS compiler by passing CC=cl CXX=cl to
configure.
Stefan
On 08/31/2016 12:36 PM, Chuan Liu wrote:
> Hi,
> Here is the thing.
> If in Cygwin.bat, I add following line:
>
> call
>> D:\ProgrammingTools\IntelSWTools\compilers_and_libraries_2016.3.207\windows\bin\ifortvars.bat
>> -arch ia32_intel64 vs2013 -platform linux
>
> then Cygwin cannot find ifort command.
>
> If in I add following line instead:
>
> call
>> D:\ProgrammingTools\IntelSWTools\compilers_and_libraries_2016.3.207\windows\bin\ifortvars.bat
>> -arch intel64 vs2013 -platform linux
>
> then Cygwin can find ifort command, but when configure, there are other
> errors saying:
>
>> $ ./configure -enable-doscompile=msvc
>> checking build system type... x86_64-unknown-cygwin
>> checking whether we want to compile in debug mode... no
>> checking for icl... icl
>> checking for C compiler default output file name... configure: error: C
>> compiler cannot create executables
>> See `config.log' for more details.
>
> The full log is in the attachment.
>
> As for the flag -platform, the manual says it has only 2 choices: "linux"
> or "android". So, I think android mustn't be the right one, I choose linux.
> You can refer to this about ifortvars.bat:
>
>> ifortvars.bat [-arch] <arch> [vs] [-platform <platform>]
>> <arch> must be is one of the following
>> ia32 : Set up for IA-32 host and target
>> ia32_intel64 : Set up for IA-32 host and Intel(R)64 target
>> intel64 : Set up for Intel(R) 64 host and target
>> If specified, <vs> must be one of the following
>> vs2010 : Set to use Microsoft Visual Studio 2010
>> vs2010shell : Set to use Microsoft Visual Studio Shell 2010
>> vs2012 : Set to use Microsoft Visual Studio 2012
>> vs2013 : Set to use Microsoft Visual Studio 2013
>> vs2013shell : Set to use Microsoft Visual Studio Shell 2013
>> vs2015 : Set to use Microsoft Visual Studio 2015
>> If <vs> is not specified, the version of Visual Studio detected at
>> install
>> time is used.
>> <platform> must be of the following.
>> linux : Set to Linux target.
>> android : Set to Android target.
>
>
> Can you figure out what is wrong?
>
> 2016-08-31 17:21 GMT+08:00 Stefan Vigerske <stefan at math.hu-berlin.de>:
>
>> Hi,
>>
>> it seems that configure failed to recognize your Fortran compiler:
>>
>> configure: Trying to determine Fortran compiler name
>> checking for ifort... no
>> checking for fl32... no
>> checking for compile_f2c... no
>> configure: WARNING: Failed to find a Fortran compiler!
>>
>>
>> Without a Fortran compiler, it will not build ThirdParty/Blas. Therefore,
>> the configure in the Ipopt subdirectory didn't "find" Blas (i.e., recognize
>> that "coinblas" will be build):
>>
>> checking for COIN-OR package Blas... skipped check via pkg-config,
>> redirect to fallback
>> checking for COIN-OR package Blas (fallback)... no, dependency coinblas
>> not available
>>
>> I don't recall at the moment what all the flags to ifortvars.bat mean, but
>> are you sure that "-platform linux" is correct.
>> After you started cygwin and the MSVC/Intel batch files went through, the
>> ifort executable should be in your path.
>>
>> Stefan
>>
>> PS: The installation instructions in the Ipopt manual might be a bit
>> outdated. Could be that one now should use --enable-msvc instead of
>> --enable-doscompile=msvc. But without GCC in the path, it may also work
>> without any options to configure.
>>
>> On 08/31/2016 09:14 AM, Chuan Liu wrote:
>>
>>> I'm trying to insatll Ipopt on windows with msvc according to
>>> Installation with Cygwin using the MSVC++ compiler
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.
>>> coin-2Dor.org_Ipopt_documentation_node15.html&d=CwMFaQ&c=
>>> Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=BRcuJnQr5NAzU2
>>> 9t80hk2rsLc4vrlRySBDabuq0O1ZI&m=em6m_GUccwZUZByhfCden-
>>> naEun0lMba_AC7kGj5sgQ&s=rFRz_F29buKnHVMcXUqg7G3YFeH4jfMhB-z9FfO-HNA&e=>.
>>> I followed the instructions first install Cygwin with necessary
>>> components, and download the external codes including:
>>>
>>> * downloading BLAS, LAPACK, ASL, Mumps and Metis with "./get.BLAS",
>>> "./get.LAPACK", "./get.ASL", "./get.Mumps" and "./get.Metis".
>>> * downloading HSL source /coinhsl-2014.01.10.zip
>>> /from http://hsl.rl.ac.uk/ipopt
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__hsl.rl.
>>> ac.uk_ipopt&d=CwMFaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA
>>> _2Wlc4&r=BRcuJnQr5NAzU29t80hk2rsLc4vrlRySBDabuq0O1ZI&m=em6m_
>>> GUccwZUZByhfCden-naEun0lMba_AC7kGj5sgQ&s=Pw9xFc9gmqA6js_u_rq
>>> 9pPW54MbnwqP_BP6j8uPCOxY&e=>,
>>> and unzip it to CoinIpopt/ThirdParty/HSL/coinhsl
>>>
>>> Then I add following 2 lines to Cygwin.bat
>>>
>>> call "D:\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
>>> call
>>> D:\IntelSWTools\compilers_and_libraries_2016.3.207\windows\b
>>> in\ifortvars.bat
>>> -arch ia32_intel64 vs2013 -platform linux
>>>
>>>
>>> And then in Cygwin command line, I enter
>>>
>>> ./configure -enable-doscompile=msvc
>>>
>>>
>>> After a while, errors comes out says:
>>>
>>> configure: for BLAS in MKL (32bit) using C linkage
>>> checking for daxpy... no
>>> configure: for BLAS in MKL (64bit) using C linkage
>>> checking for daxpy... no
>>> checking whether -lblas has BLAS... no
>>> checking for COIN-OR package Blas... skipped check via pkg-config,
>>> redirect to fallback
>>> checking for COIN-OR package Blas (fallback)... no, dependency
>>> coinblas not available
>>> configure: error: Required package BLAS not found.
>>> configure: error: /bin/sh './configure' failed for Ipopt
>>>
>>> The full configure output information is in the attachment.
>>>
>>> It seems that complier cannot find the BLAS, but I indeed download it to
>>> CoinIpopt/ThirdPart/BLAS.
>>> Does anyone know what is wrong and how to fix it?
>>>
>>>
>>> _______________________________________________
>>> Ipopt mailing list
>>> Ipopt at list.coin-or.org
>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__list.coi
>>> n-2Dor.org_mailman_listinfo_ipopt&d=CwICAg&c=Ngd-ta5yRYsqe
>>> UsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=BRcuJnQr5NAzU29t80hk2r
>>> sLc4vrlRySBDabuq0O1ZI&m=em6m_GUccwZUZByhfCden-naEun0lMba_AC7
>>> kGj5sgQ&s=QtidthPoNz8NxzFKiQNvv0QKChg_wbz3gQgAekDoh1Q&e=
>>>
>>>
>>
>> --
>> http://www.gams.com/~stefan
>>
>
--
http://www.gams.com/~stefan
More information about the Ipopt
mailing list