[GAMSlinks-tickets] Re: [GAMS interface to COIN-OR solvers] #1:
error running configure script
GAMS interface to COIN-OR solvers
coin-trac at coin-or.org
Tue Mar 27 15:47:53 EDT 2007
#1: error running configure script
--------------------------+-------------------------------------------------
Reporter: bbaumrucker | Owner: stefan
Type: defect | Status: assigned
Priority: major | Milestone:
Component: component1 | Version:
Resolution: | Keywords:
--------------------------+-------------------------------------------------
Comment (by stefan):
Hi,
> For all three of the trials, I recieved an error. The exact message is
slightly different each time, but they all look something like this:
>
> LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other
libs; us
> e /NODEFAULTLIB:library
> GamsIpopt.exe : fatal error LNK1169: one or more multiply defined
symbols found
Ah, maybe the fortran libraries are still linked against libcmt, i.e., the
multithreaded version of the libc. To get this correct, you will probably
need to set the fortran compiler flags manually, but I do not know the
options of the intel fortran compiler. You can check which flags were used
to compile your blas, lapack, and HSL package (make clean in
ThirdParty/Blas, and then make again), and then add a corresponding
FFLAGS=... to your command line which calls configure, but also add an
option that tells the intel compiler to use the non-multithread version of
the libc libraries.
> The third option does build the executable, and after a little file
renaming will install on GAMS. However, calling the solver results in the
error:
>
> --- Executing IPOPT
> '#!' is not recognized as an internal or external command,
> operable program or batch file.
That is a bug on my side, thank you.
> If you think switching compilers would help, I can. I have access to
several versions of both Microsoft's C/C++ (v6.0 and .NET 2003) and Compaq
Digital Fortran (v5.0 and v6.6) as well as Intel Fortran v8.0 compiler.
Do you know what version of each was used to compile the GAMSIO libraries?
I think Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077
is used, but changing to this one will not help much, I guess.
For Fortran it should be Compaq Visual Fortran Optimizing Compiler Version
6.6 (Update C). It has the disadvantage that this compiler will not
cooperate with the build system at all. I compiled blas, lapack, and MUMPS
(in my case) separately with this compiler (and linking against libc
instead of libcmt) and told the configure script to use these libraries
with the --with-blas and --with-lapack options. Also there I got one
multiple defined reference, put it helped to explicitely link against
dfor.lib.
However, one more thing was that I had to tell the Microsoft Compiler to
switch off optimization (-Og), otherwise Ipopt crashes somewhere in the
beginning. I haven't figured out the problem yet, debugging in Windows is
just horrible.
> I think I might have found something... I tried the following:
>
> $ cl -O2 -DNDEBUG -nologo -EHsc -GR -o GamsIpopt.exe GamsIpopt.obj
SmagNLP.obj
> SmagJournal.obj c:/temp3/btb3/Ipopt/src/Interfaces/.libs/libipopt.lib
c:/temp3/
> gamslinks-0.2.0/ThirdParty/GAMSIO/VIS/clicelib.lib
c:/temp3/gamslinks-0.2.0/Thi
> rdParty/GAMSIO/VIS/smag.lib
c:/temp3/gamslinks-0.2.0/ThirdParty/GAMSIO/VIS/gcli
> b.lib c:/temp3/gamslinks-0.2.0/ThirdParty/GAMSIO/VIS/g2d.lib
libifcorert.lib if
> consol.lib -link /NODEFAULTLIB:LIBCMT
>
> This completed without an error! I can then rerun the make and make
install routines, without cleaning. I get no error messages! The solver
installs into GAMS with no problems. However, when I run it, I get the
same error about # as before. Upon further inspection, it appears that
the make install created gms_ipnt.cmd as a linux shell script instead of a
DOS batch file to call the executable. I just rewrote it myself and
everything appears to be working! I'll test it out some more and let you
know if I have any more troubles.
That are good news :-). I hope there will be no problem coming about
because of the libc/libcmt confusion. I corrected the gmsip_nt.cmd in the
stable and trunk branch of GAMSlinks, this was indeed my error. Thank you
for finding it.
> Thank you very much for your patience and your hard work!
I more have to thank you for your patience, you had the bad luck to be the
first one who tried to compile the GAMSlinks package with cygwin and intel
fortran compiler (at least the first one who submitted a ticket).
Stefan
--
Ticket URL: <https://projects.coin-or.org/GAMSlinks/ticket/1#comment:8>
GAMS interface to COIN-OR solvers <http://projects.coin-or.org/GAMSlinks>
GAMS interface to COIN-OR solvers
More information about the GAMSlinks-tickets
mailing list