[Ipopt] Building ipopt win64

FEDERICO PRADES ILLANES federico.prades at bbva.com
Fri Aug 26 11:54:54 EDT 2016


Hello ipopt'ers,

We are trying to build Ipopt 3.12.6 in windows win32 and win64, using
MinGW(we are using tdm-gcc with gcc/gfortran 5.1).

We were successful building win32 version both Debug and Release versions,
but not so lucky with the win64 version.

The versions of the additional software we use:

- MUMPS 4.10.0
- blas (coinor 20130815)
- Lapack 3.4.2

To build Ipopt, we proceed as follows:

# Load cywin and VS2012
> export CC=cl
> export CXX=cl
> ./configure --disable-shared --enable-static --with-pic
> --enable-doscompile=msvc --enable-dependency-linking
> lt_cv_deplibs_check_method=pass_all --with-blas-lib="$BLAS_HOME/blas.dll"
> --with-lapack-lib="$LAPACK_HOME/liblapack.dll"
> --with-mumps-lib="$MUMPS_HOME/libdmumps.lib $MUMPS_HOME/libmumps_common.lib
> $MUMPS_HOME/libpord.lib $MUMPS_HOME/libmpiseq.lib"
> make -j12 install


Ipopt builds fine win32/win64. And we have a example code to use Ipopt. To
build and link the example, we use the following 32bits libraries:

- $MINGW_ROOT/lib/libmingwex.a
- $MINGW_ROOT/lib/gcc/mingw32/5.1.0/libgfortran.dll.a
- $MINGW_ROOT/lib/gcc/mingw32/5.1.0/libgcc.a

Builds, links and runs nicely on win32. However in win64 we use:

- $MINGW_ROOT/x86_64-w64-mingw32/lib/libmingwex.a
- $MINGW_ROOT/lib/gcc/x86_64-w64-mingw32/5.1.0/libgfortran.dll.a
- $MINGW_ROOT/lib/gcc/x86_64-w64-mingw32/5.1.0/libgcc.a

Here is where the fun starts. We start to get errors like:

libmingwex.lib(lib64_libmingwex_a-powi.o) : error LNK2001: unresolved
> external symbol __mingw_raise_matherr


Looking around in mingw we managed to find the missing symbol, at:

- $MINGW_ROOT\x86_64-w64-mingw32\lib\libmingw32.a

The error then becomes

MSVCRT.lib(gs_report.obj) : error LNK2005: *__report_gsfailure already
> defined* in libmingw32.lib(lib64_libmingw32_a-gs_support.o)
> libmingw32.lib(lib64_libmingw32_a-merr.o) : error LNK2005:* _matherr
> already defined* in MSVCRT.lib(merr.obj)


​Does anybody know ​what are we missing? Or how to solve it?
Does anybody know if it's possible to build ipopt with mingw using
gfortran? Is it documented in detail?

Thanks for your help, and patience to read this far.

*Federico Prades Illanes* - *ext. (2)75682 - Software Evangelist*
*Quantitative and Business Solutions (QBS) **- CIB - **BBVA*

-- 


"Este mensaje está dirigido de manera exclusiva a su destinatario y puede 
contener información privada y confidencial. No lo reenvíe, copie o 
distribuya a terceros que no deban conocer su contenido. En caso de haberlo 
recibido por error,  rogamos lo notifique al remitente y proceda a su 
borrado, así como al de cualquier documento que pudiera adjuntarse.

 Por favor tenga en cuenta que los correos enviados vía Internet no 
permiten garantizar la confidencialidad de los mensajes ni su transmisión 
de forma íntegra.

 Las opiniones expresadas en el presente correo pertenecen únicamente al 
remitente y no representan necesariamente la opinión del Grupo BBVA."

 "This message is intended exclusively for the adressee and may contain 
privileged and confidential information. Please, do not disseminate, copy 
or distribute it to third parties who should not receive it. In case you 
have received it by mistake, please inform the sender and delete the 
message and attachments from your system.

 Please keep in mind that e-mails sent by Internet do not allow to 
guarantee neither the confidentiality or the integrity of the messages 
sent."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20160826/9fa2e034/attachment.html>


More information about the Ipopt mailing list