<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:14pt"><div>Hi Stefan:<br>Thanks. I moved the code to another machine that had the Intel Fortran Compiler without MKL. This time around, the BLAS and LAPACK code was compiled and I had no problem creating libipopt.lib. So the issue definitely has something to do with the MKL part of the fortran compiler. <br><br>When I try to link to the newly created library, however, I get the linker error unresolved external symbol _drand48 and _srand48. Do you have any idea if there are any other libraries I should pull in. (Perhaps these are not part of the Microsoft Visual C++ setup)<br>Thanks<br>Krish<br></div><div style="font-family: times new roman,new york,times,serif; font-size: 14pt;"><br><div style="font-family: arial,helvetica,sans-serif; font-size: 13px;"><font face="Tahoma"
size="2"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Stefan Vigerske <stefan@math.hu-berlin.de><br><b><span style="font-weight: bold;">To:</span></b> Krish Krishnan <rkrishnan8216@yahoo.com><br><b><span style="font-weight: bold;">Cc:</span></b> ipopt mailing list <ipopt@list.coin-or.org><br><b><span style="font-weight: bold;">Sent:</span></b> Wednesday, July 29, 2009 4:00:39 PM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [Ipopt] Problems in compileing for Windows<br></font><br>
Hi,<br><br>> 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.<br><br>> 1. When I run configure, I get a warning that the FFLAGS="" does not work, and that it will compile with an empty FFLAGS.<br><br>I cannot see this in your configure output. I see a<br> configure: Fortran compiler options are: -MT -O3 -fpp -nologo<br>which looks good to me.<br><br>> 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?<br><br>I think so. Your configure output shows<br>checking for BLAS in MKL... yes<br>checking whether LAPACK is already available with BLAS library... yes<br><br>> 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?<br>> 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.<br><br>Looks like it is extracting the MKL library, which is then resulting in<br>these many object files.<br>And the MKL lib is extracted because it has been added to libcoinmumps -<br>at the point where you report this warning in step 3:<br><br>/bin/sh ./../../libtool --tag=F77 --mode=link
ifort -MT -O3 -fpp<br>-nologo -Dmetis -o <a target="_blank" href="http://libcoinmumps.la">libcoinmumps.la</a> dmumps_comm_buffer.lo<br>dmumps_struc_def.lo mumps_ooc_common.lo mumps_static_mapping.lo<br>dmumps_ooc_buffer.lo dmumps_load.lo dmumps_ooc.lo dmumps_part1.lo<br>dmumps_part2.lo dmumps_part3.lo dmumps_part4.lo dmumps_part5.lo<br>dmumps_part6.lo dmumps_part7.lo dmumps_part8.lo mumps_part9.lo<br>mumps_c.lo mumps_common.lo mumps_orderings.lo mumps_io.lo<br>mumps_io_basic.lo mumps_io_thread.lo mumps_io_err.lo mpi.lo mpic.lo<br>elapse.lo mkl_intel_c.lib mkl_sequential.lib mkl_core.lib<br><br>*** Warning: Trying to link with static lib archive mkl_intel_c.lib.<br>*** I have the capability to make that library automatically link in when<br>*** you link to this library. But I can only do this if you have a<br><br><br>I am not so sure how to proceed, since I never tried linking to MKL before.<br>Maybe you can go into
IpOpt_3.6.1_MUMPS/ThirdParty/Mumps and edit the<br>Makefile there, trying to prevent adding the files mkl_intel_c.lib<br>mkl_sequential.lib mkl_core.lib to the linkline.<br><br>In my linux version of the Makefile, there are the two lines<br>libcoinmumps.la: $(libcoinmumps_la_OBJECTS) $(libcoinmumps_la_DEPENDENCIES)<br> $(F77LINK) $(am_libcoinmumps_la_rpath)<br>$(libcoinmumps_la_LDFLAGS) $(libcoinmumps_la_OBJECTS)<br>$(libcoinmumps_la_LIBADD) $(LIBS)<br><br>Maybe removing $(LIBS) or/and $(libcoinmumps_la_LIBADD) will help?<br><br>Stefan<br><br>-- <br>Stefan Vigerske<br>Humboldt University Berlin, Numerical Mathematics<br><span><a target="_blank" href="http://www.math.hu-berlin.de/%7Estefan">http://www.math.hu-berlin.de/~stefan</a></span><br></div></div></div><br>
</body></html>