[Clp] configure errors, cannot find BLAS, /bin/sh ./configure failed for Ipopt

LMH lmh_users-groups at molconn.com
Fri Sep 28 13:16:10 EDT 2018


I tried to manually include direct.h outside the logic but I get a file not found
error. I am never sure if being on cygwin means being on windows or being on linux.

LMH


Stefan Vigerske wrote:
> Hi,
> 
> Since you are on Windows, maybe try whether the
> 
> #include <direct.h>
> #define getcwd _getcwd
> 
> variant works.
> 
> Stefan
> 
> On 9/28/18 4:18 AM, LMH wrote:
>> It seems like this is a mailing list where "top post" is the proper reply method.
>> Please let me know if that is not the case. I have been replying with bottom post.
>>
>> Hello Stefan,
>>
>> Including <cstdio> in the file CoinFactorization.hpp fixed the error,
>>   error: there are no arguments to 'printf' that depend on a template parameter
>>
>> I also had to make many additional inclusions listed at the end of the post.
>>
>>
>> I now have the following error,
>>
>> COIN-OS/CoinUtils/src/CoinHelperFunctions.hpp: In function 'char
>> CoinFindDirSeparator()':
>> COIN-OS/CoinUtils/src/CoinHelperFunctions.hpp:705:22: error: 'getcwd' was not
>> declared in this scope
>>
>> as far as I know, getcwd is in unistd.h, which is included in the logic at the top,
>>
>> #if defined(_MSC_VER)
>> #  include <direct.h>
>> #  define getcwd _getcwd
>> #else
>> #  include <unistd.h>
>> #endif
>>
>> I have added in include for both stdio.h and unistd.h as the first two lines of the
>> file (before the #ifndef), but this does not fix the error.
>>
>> I am not sure what to do next. I cannot find any documentation on what would cause a
>> compiler error for getcwd other than missing unistd.h, though it seems that in some
>> cases stdio.h needs to be included as well.
>>
>> The error is down past line 700,
>>
>> if(getcwd(buf, size))
>>
>> Adding the includes right before the function definition for CoinFindDirSeparator()
>> also does not help.
>>
>> Is there some location in the file where the include should be located other than at
>> the beginning?
>>
>> Is there a different include that should be added?
>>
>> Any suggestions?
>>
>> LMH
>>
>>
>>
>> other required inclusions so far,
>>
>> include <cstdio> in CoinParamUtils.cpp to address the compiler errors,
>>   error: 'stdin' was not declared in this scope
>>   error: 'fprintf' was not declared in this scope
>>   error: 'fflush' was not declared in this scope
>>   error: 'fgets' was not declared in this scope
>>
>> include <cstddef> in CbcEventHandler.hpp to address the compiler error,
>>   CbcEventHandler.hpp:137:43: error: 'NULL' was not declared in this scope
>>
>> include <cstddef> in IpSmartPtr.hpp to address the compiler error,
>>   IpSmartPtr.hpp:340:12: error: 'NULL' was not declared in this scope
>>
>> include <cstdio> in IpMultiVectorMatrix.cpp to address the compiler error,
>>   IpMultiVectorMatrix.cpp:254:51: error: 'sprintf' was not declared in this scope
>>
>> include <cstddef> in IpTripletToCSRConverter.cpp to address the compiler error,
>>   IpTripletToCSRConverter.cpp:21:11: error: 'NULL' was not declared in this scope
>>
>> include <cstdio> in IpLoqoMuOracle.cpp to address the compiler error,
>>   IpLoqoMuOracle.cpp:68:42: error: 'sprintf' was not declared in this scope
>>
>> include <cstdio> in IpOrigIpoptNLP.cpp to address the compiler error,
>>   IpOrigIpoptNLP.cpp:296:130: error: 'sprintf' was not declared in this scope
>>
>> include <cstdio> in IpOrigIterationOutput.cpp to address the compiler error,
>>   IpOrigIterationOutput.cpp:101:49: error: 'sprintf' was not declared in this scope
>>
>> include <cstdio> in IpProbingMuOracle.cpp to address the compiler error,
>>   IpProbingMuOracle.cpp:143:42: error: 'sprintf' was not declared in this scope
>>
>> include <cstdio> in IpQualityFunctionMuOracle.cpp to address the compiler error,
>>   IpQualityFunctionMuOracle.cpp:598:42: error: 'sprintf' was not declared in this
>> scope
>>
>> include <cstdio> in IpRestoIterationOutput.cpp to address the compiler error,
>>   IpRestoIterationOutput.cpp:129:49: error: 'sprintf' was not declared in this scope
>>
>> include <cstdio> in IpStdAugSystemSolver.cpp to address the compiler error,
>>   IpStdAugSystemSolver.cpp:167:36: error: 'sprintf' was not declared in this scope
>>
>> include <cstdio> in IpTNLPAdapter.cpp to address the compiler error,
>>   IpTNLPAdapter.cpp:411:142: error: 'sprintf' was not declared in this scope
>>
>>
>>
>>
>>
>>
>> Stefan Vigerske wrote:
>>> Hi,
>>>
>>> you might try adding an include for <cstdio> in CoinFactorization.hpp itself.
>>>
>>> Stfan
>>>
>>> On 9/27/18 6:43 PM, LMH wrote:
>>>> LMH wrote:
>>>>> LMH wrote:
>>>>>> John Forrest wrote:
>>>>>>> I don't know enough about building on windows to give a definite answer but you
>>>>>>> could
>>>>>>> try one or two things to get something working and then improve the situation.
>>>>>>>
>>>>>>> a) do configure with --without-blas --without-lapack
>>>>>>>
>>>>>>> or
>>>>>>>
>>>>>>> b) go into ThirdParty/Blas and Lapack and do get.Blas and get.Lapack
>>>>>>>
>>>>>>> John Forrest
>>>>>>> On 25/09/18 17:42, LMH wrote:
>>>>>>>> Hello
>>>>>>>>
>>>>>>>> This is the second time I have sent this message. I think there was a
>>>>>>>> subscription
>>>>>>>> issue with the first message. I apologize if this is a duplicate but I have not
>>>>>>>> yet
>>>>>>>> received the original so I have sent it again.
>>>>>>>>
>>>>>>>>
>>>>>>>> I am trying to build clp under cygwin on a windows xp box. I have downloaded
>>>>>>>> the most
>>>>>>>> recent src using subversion and installed it to,
>>>>>>>>
>>>>>>>> C:\cygwin\lib\COIN-OS\
>>>>>>>>
>>>>>>>> It seemed like lib\ is where this should go, let me know if it should go in
>>>>>>>> bin\ or
>>>>>>>> somewhere in local\ instead.
>>>>>>>>
>>>>>>>> The configure script seems to run well but at the end I get,,
>>>>>>>>
>>>>>>>> checking whether -lblas has BLAS... no
>>>>>>>> configure: error: cannot find BLAS
>>>>>>>> configure: error: /bin/sh './configure' failed for Ipopt
>>>>>>>>
>>>>>>>> I have gfortran,
>>>>>>>>
>>>>>>>> $ which gfortran
>>>>>>>> /usr/bin/gfortran
>>>>>>>>
>>>>>>>> $ gfortran -v
>>>>>>>> Target: i686-pc-cygwin
>>>>>>>> Thread model: posix
>>>>>>>> gcc version 5.3.0 (GCC)
>>>>>>>>
>>>>>>>> As far as I can tell, my PATH is configured correctly.
>>>>>>>>
>>>>>>>> C:\cygwin\bin;C:\Program Files\Intel\iCLS
>>>>>>>> Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program
>>>>>>>> Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
>>>>>>>> Files\Intel\Intel(R)
>>>>>>>> Management Engine Components\IPT;c:\dms;c:\dms\gnuplot;C:\Program
>>>>>>>> Files\TortoiseSVN\bin
>>>>>>>>
>>>>>>>> I believe that I have BLAS installed in cygwin but the config script cannot
>>>>>>>> seem to
>>>>>>>> find it. I can post the entire configure script output, or any other output if
>>>>>>>> that
>>>>>>>> would help, just let me know.
>>>>>>>>
>>>>>>>> LMH
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Clp mailing list
>>>>>>>> Clp at list.coin-or.org
>>>>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_clp&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=js2M0T-3OIMIVDvokcKjokJbk0F8QOCd0mT4FsVFE88&m=d0WfxyR11cyfOXA-T7rNQ2OGp4qkrePGbUjFuEMZZLY&s=xmebJ9kLTiaifIEAMtBgTDnwAcnFhj7f3H0DnzaHHrM&e=
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Clp mailing list
>>>>>>> Clp at list.coin-or.org
>>>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_clp&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=G-rWCwMCBm3eUuw9HwVHnyOeSnSun6y799F3zRs5-x4&m=15JBJE5qc5hAwj760hY9tzyTy9aRHlJEFVt9QcVSfNQ&s=jUDp_AboHjY0zT3f-ewerzcDs11isWMJKN7kHQIbklI&e=
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Thanks for the advice. I added the third party code as you suggested. The get
>>>>>> scripts
>>>>>> did not work because I had issues with wget and also some of the file names in the
>>>>>> scripts do not match the files that were downloaded. I had to manually implement
>>>>>> some
>>>>>> of the steps in the get scripts.
>>>>>>
>>>>>> After running configure -C, I get a different error.
>>>>>>
>>>>>> checking whether LAPACK is already available with BLAS library... no
>>>>>> checking whether -llapack has LAPACK... yes
>>>>>> configure: Checking for Harwell subroutine library
>>>>>> checking whether MUMPS is available... no
>>>>>> configure: error: "No linear solver (such as MUMPS) available.  You need to
>>>>>> provide
>>>>>> at least one."
>>>>>> configure: error: /bin/sh './configure' failed for Ipopt
>>>>>>
>>>>>> There is nothing listed under MUMPS in the cygwin package manager. How do I go
>>>>>> about
>>>>>> resolving this?
>>>>>>
>>>>>> LMH
>>>>>>
>>>>>> _______________________________________________
>>>>>> Clp mailing list
>>>>>> Clp at list.coin-or.org
>>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_clp&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=G-rWCwMCBm3eUuw9HwVHnyOeSnSun6y799F3zRs5-x4&m=N9fx_-dJ1omk9FGd1XVnM9jPBcJJbAO6zCf6Z2EEhBM&s=DPYXM-vxdVmLtp0X7xR6BMayOQT0RyRMiLJCz_5E968&e=
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> I downloaded and built MUMPS Version 1.71 according to the cygwin instructions
>>>>> here,
>>>>>
>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__sourceforge.net_projects_mumps_files_&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=G-rWCwMCBm3eUuw9HwVHnyOeSnSun6y799F3zRs5-x4&m=EN_1NCjY2BBHQEFERdu1TbKKkY-EoG6ZRbTa4qkkqe8&s=tUugfkR19NDQFz7VhEXwjiOwjRHbfR6PhS8vEKGWmoY&e=
>>>>>
>>>>>
>>>>>
>>>>> The build seemed to go fine once I made the suggested local configuration changes.
>>>>> When I re-ran ./config for coin-or, I still get the error,
>>>>>
>>>>> checking whether MUMPS is available... no
>>>>> configure: error: "No linear solver (such as MUMPS) available.  You need to provide
>>>>> at least one."
>>>>> configure: error: /bin/sh './configure' failed for Ipopt
>>>>>
>>>>> I installed mumps to /lib and I suspect that it is being looked for in one of
>>>>> the bin
>>>>> directories. the "which mumps" command doesn't return anything.
>>>>>
>>>>> Should I move the mumps install directory to some other location like /bin or
>>>>> /usr/local/bin, etc?
>>>>>
>>>>> Should I add a ln somewhere that points to where mumps is now?
>>>>>
>>>>> Do I have a different problem altogether?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> LMH
>>>>>
>>>>> _______________________________________________
>>>>> Clp mailing list
>>>>> Clp at list.coin-or.org
>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_clp&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=G-rWCwMCBm3eUuw9HwVHnyOeSnSun6y799F3zRs5-x4&m=EN_1NCjY2BBHQEFERdu1TbKKkY-EoG6ZRbTa4qkkqe8&s=sh68nXGk7tiQUbywND54IK-RDjWW5JOtJxM9aQ1Y1Hs&e=
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> The configure script has completed, but make fails with the following error,
>>>>
>>>> CoinFactorization.hpp: In member function 'bool CoinFactorization::pivot(int, int,
>>>> CoinBigIndex, CoinBigIndex, double*, unsigned int*, int, int, T*, int)':
>>>> CoinFactorization.hpp:648:54: error: there are no arguments to 'printf' that depend
>>>> on a template parameter, so a declaration of 'printf' must be available
>>>> [-fpermissive]
>>>>        printf("more memory needed in middle of invert\n");
>>>>                                                         ^
>>>> CoinFactorization.hpp:648:54: note: (if you use '-fpermissive', G++ will accept your
>>>> code, but allowing the use of an undeclared name is deprecated)
>>>> Makefile:566: recipe for target 'CoinFactorization1.lo' failed
>>>> make[2]: *** [CoinFactorization1.lo] Error 1
>>>> make[2]: Leaving directory '/usr/lib/COIN-OS/CoinUtils/src'
>>>> Makefile:360: recipe for target 'all-recursive' failed
>>>> make[1]: *** [all-recursive] Error 1
>>>> make[1]: Leaving directory '/usr/lib/COIN-OS/CoinUtils'
>>>> Makefile:297: recipe for target 'all-recursive' failed
>>>> make: *** [all-recursive] Error 1
>>>>
>>>> This seems like it may be a compiler version issue. I checked, and <stdio.h> is
>>>> included in the file CoinFactorization1.cpp and I think that is where printf is
>>>> defined. I tried including cstdlib as well but that doesn't help.
>>>>
>>>> Any suggestions on what to do? I am currently using gcc/g++/gfortran 5.3.0 under
>>>> 32-bit cygwin.
>>>>
>>>> LMH
>>>>
>>>> _______________________________________________
>>>> Clp mailing list
>>>> Clp at list.coin-or.org
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_clp&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=BRcuJnQr5NAzU29t80hk2rsLc4vrlRySBDabuq0O1ZI&m=89UCf4k0W54s_nQmCeAD3McLiyMEsCLWeAp_42I0uUk&s=5tQ3MQaqtnOp5UcIsuYpn5VEVn9sxt-CPk6k15pvtFA&e=
>>>>
>>>>
>>>>
>>>
>>>
>>
> 
> 



More information about the Clp mailing list