[Ipopt] Problems in compileing for Windows

Stefan Vigerske stefan at math.hu-berlin.de
Wed Jul 29 06:30:39 EDT 2009


Hi,

> I am trying to upgrade my version of IpOpt to the current level.  I have the Intel Fortran compiler (Version 11) and the Microsoft Visual Studio (2005).  My environment is Cygwin, and I configure with --enable-doscompile=msvc.  I have used the get statements in the respective ThirdParty directories to get Lapack, Blas, Metis and I also have the latest version of Mumps.

> 1. When I run configure, I get a warning that the FFLAGS="" does not work, and that it will compile with an empty FFLAGS.

I cannot see this in your configure output. I see a
  configure: Fortran compiler options are: -MT -O3 -fpp -nologo
which looks good to me.

> 2. The configure command detects Blas and Lapack in the MKL, and so will not build these libraries.  I guess it will use the default version of these that come with MKL.  Is this the correct approach, or is there some way I can force it to build the Blas and Lapack libraries?

I think so. Your configure output shows
checking for BLAS in MKL... yes
checking whether LAPACK is already available with BLAS library... yes

> 3.  When I try to compile by running make, I get a warning that I am trying to link with static library archive mkl_core.lib and that I should maybe use the shared version.  What should I do at this stage?
> 4. When at the final stage it tries to build the library, the process seems to pull in a huge number of .obj files (much more than I remember from the previous build).  It hangs at this point and I cannot proceed further and have to kill the process.

Looks like it is extracting the MKL library, which is then resulting in
these many object files.
And the MKL lib is extracted because it has been added to libcoinmumps -
at the point where you report this warning in step 3:

/bin/sh ./../../libtool --tag=F77 --mode=link ifort  -MT -O3 -fpp
-nologo   -Dmetis   -o libcoinmumps.la   dmumps_comm_buffer.lo
dmumps_struc_def.lo mumps_ooc_common.lo mumps_static_mapping.lo
dmumps_ooc_buffer.lo dmumps_load.lo dmumps_ooc.lo dmumps_part1.lo
dmumps_part2.lo dmumps_part3.lo dmumps_part4.lo dmumps_part5.lo
dmumps_part6.lo dmumps_part7.lo dmumps_part8.lo mumps_part9.lo
mumps_c.lo mumps_common.lo mumps_orderings.lo mumps_io.lo
mumps_io_basic.lo mumps_io_thread.lo mumps_io_err.lo mpi.lo mpic.lo
elapse.lo  mkl_intel_c.lib mkl_sequential.lib mkl_core.lib

*** Warning: Trying to link with static lib archive mkl_intel_c.lib.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a


I am not so sure how to proceed, since I never tried linking to MKL before.
Maybe you can go into IpOpt_3.6.1_MUMPS/ThirdParty/Mumps and edit the
Makefile there, trying to prevent adding the files mkl_intel_c.lib
mkl_sequential.lib mkl_core.lib to the linkline.

In my linux version of the Makefile, there are the two lines
libcoinmumps.la: $(libcoinmumps_la_OBJECTS) $(libcoinmumps_la_DEPENDENCIES)
        $(F77LINK) $(am_libcoinmumps_la_rpath)
$(libcoinmumps_la_LDFLAGS) $(libcoinmumps_la_OBJECTS)
$(libcoinmumps_la_LIBADD) $(LIBS)

Maybe removing $(LIBS) or/and $(libcoinmumps_la_LIBADD) will help?

Stefan

-- 
Stefan Vigerske
Humboldt University Berlin, Numerical Mathematics
http://www.math.hu-berlin.de/~stefan



More information about the Ipopt mailing list