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

Stefan Vigerske stefan at math.hu-berlin.de
Fri Sep 28 04:26:57 EDT 2018


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