[Ipopt] Help with IPOPT linking problems on Windows MSVC/

Stefan Vigerske stefan at math.hu-berlin.de
Wed Aug 27 06:20:41 EDT 2008


Hi,

> * Linking the sample application with: "libipopt.lib mkl_intel_c.lib 
> mkl_core.lib mkl_sequential.lib libCOINHSL.lib vcf2c.lib" creates an executable 
> that links and works fine.  Note here I am using MKL, it also works with the 
> built blas/lapack: "libipopt.lib libCOINHSL.lib vcf2c.lib libcoinblas.lib 
> libcoinlapack.lib"

That is the point where you should stop ;-).

> But when I change the sample application to a a debug build (/MTd):
> * If I link with the debug versions also created with /MTd: libipoptd.lib 
> libCOINHSLd.lib vcf2c.lib libcoinblasd.lib libcoinlapackd.lib  (or the non-debug 
> versions), everything goes haywire with thousands of unresolved externals for 
> things I would expect to always be there (see bottom of message):

Maybe you need to build also a debug version of the vcf2c.lib. You would 
need to change some -MT to -MTd somewhere in the makefile.vc.

> * I can email/upload my visual studio project file for ipopt and for the sample 
> application if my steps forward will be useful and if anyone wants to play with it.
> * Otherwise, perhaps I am a library user who doesn't know enough to get this 
> stuff working on his own and should wait for binaries.  If getting an automated 
> build process for windows binaries with /MT, /MTd, /MD, /MDd and with support 
> for binding to different LAPACK/BLAS as linker inputs is on the horizon, then I 
> also may be wasting my time and would be better off testing the final 
> binaries/sample projects.  Is there a gut instinct on the timeframe for binaries?

I could try making binaries of Ipopt in optimized (-MT) and debug mode 
(-MTd) using the new Mumps and the Netlib LAPACK/BLAS, and having 
everything compiled with Intel C++ and Fortran compilers. Would that be 
helpful?

> ============== Here were a couple of the unresolved externals....  I am sure it 
> is another 101 type organization, but I haven't hit these kinds of problems 
> using other libraries and am not sure how to handle things like this.
> 
> 1>libcpmtd.lib(iosptrs.obj) : error LNK2001: unresolved external symbol "void 
> __cdecl operator delete(void *)" (??3 at YAXPAX@Z)
 > [...]

This looks like something that would be stdc++ in Linux is missing.

Stefan

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


More information about the Ipopt mailing list