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

LMH lmh_users-groups at molconn.com
Thu Sep 27 22:18:07 EDT 2018


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