Version 7 (modified by jpfasano, 14 years ago) (diff)


Note that these project webpages are based on Wiki, which allows webusers to modify the content to correct typos, add information, or share their experience and tips with other users. You are welcome to contribute to these project webpages. To edit these pages or submit a ticket you must first register and login.

User Comments

Users are encouraged to share tricks and comments on this wiki page. For example, if you run into a strange configuration problem and found a work around that might work for others, it would be great if you could write it down here. Beside saving other users some time, this is also useful for the COIN developers to get some feedback, and to get some ideas as to what can be improved or better documented.

Comments and Tricks for Configuration

Configuring OSI with CPLEX 9.0 on Windows XP with MinGW (gcc 3.4.5) and MSYS

Problem: ./configure script fails with the following error: "Cannot find symbol CPXgetstat with CPX".

Solution: Run the script with --disable-cplex-libcheck option.

More info: The script fails during a check of the CPLEX library. Apart from that, the script works without problems. Disabling the check thus "solves" the problem. The "make" and "make test" commands then should work without any additional changes - just remember to have the CPLEX dll in the path and ILOG_LICENSE_FILE system variable pointing to the CPLEX license file...

Other things

  • When compiling with Intel or MS compilers in Windows, the build system might not setup compilation dependencies. Thus, a build not from scratch after changing a few header files might lead in unresolved symbols or runtime problems that are more difficult to track.
    One can tell configure to enable the dependency tracking system even when it things that it slows down the compilation by adding --enable-dependency-tracking to the configure call. (see also the automake manual)

Comments and Tricks for Compilation

  • When compiling with Intel compilers, it can be advantageous to add the compiler flag -mp1 (ADD_CXXFLAGS=-mp1). This disables some optimization, but improves floating point accuracy. In my case it helped to make (x == 0./0.) return false if x is not nan.
  • GCC 3.3.5 seem to have some bug in its optimization routines regarding the omission of frame pointers. What seem to work is OPT_CXXFLAGS="-O3 -fno-omit-frame-pointer -momit-leaf-frame-pointer -DNDEBUG"
  • GCC 4.3.0 (experimental) can report a lot of warnings about type conversions. You can turn this off by adding -Wno-conversion to your ADD_CXXFLAGS.
  • When compling with MS C/C++ compiler (cl) and using f2c for Blas, the compiler flags used to compile translated Fortran files and the flags used to other compile C files might be different. This can lead to different library dependencies (e.g., libc.lib vs. libcmt.lib) and thus to warnings when binaries are build.
    A way to avoid this is to set FFLAGS, e.g., if you do an optimized build, you might want to set FFLAGS="-MT" (at least). (see also ticket #60)
  • When compiling on a Redhat Linux PowerPC some projects (Ipopt, Bonmin, & OS) need to be configured with ADD_CFLAGS="-DNO_fpu_control".
  • When compiling on AIX with the xlC compiler:
    • configure needs to be run with ADD_CXXFLAGS="--qrtti".
    • Some projects (SYMPHONY) need an addtional flag for ADD_CXXFLAGS of -qsourcetype=c++. configure should be run with ADD_CXXFLAGS="-qsourcetype=c++ -qrtti". This is because the C++ source files in these projects have the suffix c (not cpp).

Comments and Tricks for Using COIN Libraries