Closed RuifMaxx closed 1 year ago
**[ 91%] Linking CXX static library libSHOTTasks.a
[ 91%] Built target SHOTTasks
[ 92%] Building CXX object CMakeFiles/SHOTSolutionStrategies.dir/src/SolutionStrategy/SolutionStrategyMIQCQP.cpp.o
[ 93%] Building CXX object CMakeFiles/SHOTSolutionStrategies.dir/src/SolutionStrategy/SolutionStrategyMultiTree.cpp.o
[ 94%] Building CXX object CMakeFiles/SHOTSolutionStrategies.dir/src/SolutionStrategy/SolutionStrategyNLP.cpp.o
[ 95%] Building CXX object CMakeFiles/SHOTSolutionStrategies.dir/src/SolutionStrategy/SolutionStrategySingleTree.cpp.o
[ 95%] Linking CXX static library libSHOTSolutionStrategies.a
[ 95%] Built target SHOTSolutionStrategies
[ 96%] Building CXX object CMakeFiles/SHOTSolver.dir/src/Report.cpp.o
[ 97%] Building CXX object CMakeFiles/SHOTSolver.dir/src/RootsearchMethod/RootsearchMethodBoost.cpp.o
[ 98%] Building CXX object CMakeFiles/SHOTSolver.dir/src/Solver.cpp.o
[ 99%] Linking CXX shared library libSHOTSolver.so
[ 99%] Built target SHOTSolver
[ 99%] Building CXX object CMakeFiles/SHOT.dir/src/SHOT.cpp.o
[100%] Linking CXX executable SHOT
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_getspecific'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_create'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutexattr_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_tryrdlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutex_trylock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_setaffinity_np'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_key_delete'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_key_create'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_once'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_rdlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_join'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlockattr_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_spin_init'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_spin_unlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_trywrlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_spin_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutexattr_settype'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlockattr_init'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_init'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_unlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_spin_lock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_wrlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_getaffinity_np'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_setspecific'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlockattr_setkind_np'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/SHOT.dir/build.make:97: SHOT] Error 1
make[1]: *** [CMakeFiles/Makefile2:461: CMakeFiles/SHOT.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
**
-lpthread
seems to be missing in the linker flags. Maybe set LDFLAGS=-lpthread
before calling cmake.
I am sorry for not being familiar with CMake. Could you tell me how to set LDFLAGS=-lpthread
?After I set it. it does not work. May I set it in the wrong way? Thank you very much.
Maybe LDFLAGS=-lpthread cmake .....
Should be easy to find out with some internet search.
I appreciate you for open-sourcing SHOT and I am looking forward to applying it to my project. However, when SHOT uses CBC as a sub-solver, it often cannot find the optimal solution and returns integer solutions for continuous variables. I tried using CPLEX as a sub-solver, but it did not compile successfully. I appreciate your help.
This error still exists with calling LDFLAGS=-lpthread cmake -DCMAKE_BUILD_TYPE=Release -DHAS_CPLEX=on -DCPLEX_DIR=/opt/ibm/IL0G/CPLEX_Studio_Community2211 -DHAS_IPOPT=on -DIPOPT_DIR=/root/Ipopt-3.12.7 ..
The output info is below:
root@chttFfj7:~/SHOT/build# LDFLAGS=-lpthread cmake -DCMAKE_BUILD_TYPE=Release -DHAS_CPLEX=on -DCPLEX_DIR=/opt/ibm/IL0G/CPLEX_Studio_Community2211 -DHAS_IPOPT=on -DIPOPT_DIR=/root/Ipopt-3.12.7 ..
-- The CXX compiler identification is GNU 9.4.0
-- The C compiler identification is GNU 9.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for C++ include filesystem
-- Looking for C++ include filesystem - found
-- Performing Test CAN_COMPILE_FS_WITHOUT_LINK
-- Performing Test CAN_COMPILE_FS_WITHOUT_LINK - Success
-- Git hash: 3557f60e-dirty
-- Found CPLEX Studio: /opt/ibm/ILOG/CPLEX_Studio_Community2211
-- Found CPLEX: /opt/ibm/ILOG/CPLEX_Studio_Community2211/cplex/lib/x86-64_linux/static_pic/libcplex.a
-- Found CPLEX_CONCERT: /opt/ibm/ILOG/CPLEX_Studio_Community2211/concert/lib/x86-64_linux/static_pic/libconcert.a
-- Performing Test HAVE_WNO_LONG_LONG_FLAG
-- Performing Test HAVE_WNO_LONG_LONG_FLAG - Success
-- Found CPLEX_ILOCPLEX: /opt/ibm/ILOG/CPLEX_Studio_Community2211/cplex/lib/x86-64_linux/static_pic/libilocplex.a
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for one of the modules 'ipopt'
-- CPLEX include files will be used from:
/opt/ibm/ILOG/CPLEX_Studio_Community2211/cplex/include
/opt/ibm/ILOG/CPLEX_Studio_Community2211/concert/include
/opt/ibm/ILOG/CPLEX_Studio_Community2211/cplex/include
-- The following CPLEX libraries will be used:
/opt/ibm/ILOG/CPLEX_Studio_Community2211/cplex/lib/x86-64_linux/static_pic/libcplex.a
/opt/ibm/ILOG/CPLEX_Studio_Community2211/concert/lib/x86-64_linux/static_pic/libconcert.a
/opt/ibm/ILOG/CPLEX_Studio_Community2211/cplex/lib/x86-64_linux/static_pic/libilocplex.a
-- Ipopt include files will be used from: /root/Ipopt-3.12.7/include/coin
-- The following Ipopt libraries will be used from: /root/Ipopt-3.12.7/lib;/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu;/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib;/lib/../lib;/usr/lib/../lib;/usr/lib/gcc/x86_64-linux-gnu/9/../../..
ipopt;lapack;blas;m;dl;coinhsl;gfortran;m;quadmath
-- Configuring done
-- Generating done
-- Build files have been written to: /root/SHOT/build
some make install result
[ 6%] Performing configure step for 'spdlog'
-- The CXX compiler identification is GNU 9.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build spdlog: 1.8.2
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Build type: Release
-- Generating example(s)
-- Generating install
-- Configuring done
-- Generating done
-- Build files have been written to: /root/SHOT/build/spdlog/src/spdlog-build
[100%] Linking CXX executable SHOT
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_getspecific'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_create'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutexattr_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_tryrdlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutex_trylock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_setaffinity_np'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_key_delete'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_key_create'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_once'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_rdlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_join'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlockattr_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_spin_init'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_spin_unlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_rwlock_trywrlock'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_spin_destroy'
/usr/bin/ld: libSHOTSolver.so: undefined reference to `pthread_mutexattr_settype'
Hi,
Did you get SHOT to finally compile with CPLEX?
I am aware that there are issues with using Cbc as the subsolver. But could you please specify more in which cases it returns the wrong solution for discrete values? If you do not want to share your models here, you can also send them to me at andreas.lundell@abo.fi.
I will close this now, please reopen if needed.
I install cplex with cos_installer_preview-22.1.1.0.R0-M08SWML-linux-x86-64 and Ipopt 3.12.7. I get error as below.
However, I can successfully build shot with cbc as subsolver. But, the solver acts strangely when it solve MINLP problem.