coin-or / SHOT

A solver for mixed-integer nonlinear optimization problems
https://shotsolver.dev
Eclipse Public License 2.0
117 stars 25 forks source link

CPLEX not found in compiling #173

Open amir-hoseyn77 opened 7 months ago

amir-hoseyn77 commented 7 months ago

Hello if we chose -DHAS_CPLEX=on and refer the CPLEX dir to cmake, an error occurred! I investigated the files and found out that in misc/FindCPLEX.cmake in line 160 a variable was written wrong: set(CPLEX_CONCERT_DIR ${CPLEX_STUDIO_DIR}/concert). But it must be ${CPLEX_STUDIO_DIR_} (an _ added). The line 160 is similar to line 83 and I copy that and It worked! I am not a git pro so created an issue not a PR.

I have another question. It seems Multi-threading and parallel processing are disabled by default. Are these options effective or not? I have 20 cores and I think 19 core are wasting :)

P.S. my cmake output with original code:

$ cmake -DCMAKE_BUILD_TYPE=Release -DHAS_AMPL=on -DGENERATE_EXE=on\
>  -DHAS_CPLEX=on -DHAS_IPOPT=on \
>  -DCPLEX_DIR=/usr/local/ibm/ILOG ..

-- Git hash: 424b5e48-dirty
-- Checking for one of the modules 'cbc'
-- Cbc found using Pkg-config:
   Include directories found: /usr/include/coin
   Library directories found:
-- Could NOT find CBC (missing: CBC_LIBRARY_DIRS)
-- Searching for Cbc libraries and its dependencies, e.g. in /opt/Cbc-2.10/lib/
   Cbc library found at: /usr/lib/x86_64-linux-gnu/libCbc.so
   CbcSolver library found at: /usr/lib/x86_64-linux-gnu/libCbcSolver.so
   OsiClp library found at: /usr/lib/x86_64-linux-gnu/libOsiClp.so
   Clp library found at: /usr/lib/x86_64-linux-gnu/libClp.so
   Osi library found at: /usr/lib/x86_64-linux-gnu/libOsi.so
   CoinUtils library found at: /usr/lib/x86_64-linux-gnu/libCoinUtils.so
   Cgl library found at: /usr/lib/x86_64-linux-gnu/libCgl.so
-- Found CPLEX Studio: /usr/local/ibm/ILOG/CPLEX_Studio128
-- Could NOT find CPLEX_CONCERT (missing: CPLEX_CONCERT_LIBRARY CPLEX_CONCERT_LIBRARY_DEBUG CPLEX_CONCERT_INCLUDE_DIR)
-- Could NOT find CPLEX_ILOCPLEX (missing: CPLEX_CONCERT_FOUND)
-- CPLEX libraries could not be found!
-- Cbc include files will be used from: /usr/include/coin
-- The following Cbc libraries will be used from:
   /usr/lib/x86_64-linux-gnu/libCbc.so;/usr/lib/x86_64-linux-gnu/libCbcSolver.so;/usr/lib/x86_64-linux-gnu/libOsiClp.so;/usr/lib/x86_64-linux-gnu/libClp.so;/usr/lib/x86_64-linux-gnu/libOsi.so;/usr/lib/x86_64-linux-gnu/libCoinUtils.so;/usr/lib/x86_64-linux-gnu/libCgl.so
-- Ipopt include files will be used from: /opt/ipopt/include/coin
-- The following Ipopt libraries will be used from: /usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu;/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib;/lib/../lib;/usr/lib/../lib;/usr/lib/gcc/x86_64-linux-gnu/7/../../..
   ipopt;dmumps_seq;blas;lapack;blas;dmumps_seq;dl;gfortran;m;quadmath;blas;m;dl
-- Configuring done
-- Generating done
-- Build files have been written to: /home/arabi_a/solvers/shot/SHOT/build