I am trying to compile OR-tools using a binary package that I downloaded and whose tests are running fine. Also the framework here https://github.com/or-tools/cmake_or-tools compiles ok on my system but it insists on using AppleClang which does not support OpenMP.
When building a DIY CMakeLists.txt, how can I link properly and compile against or tools?
I am happy to generate more linker output.
Thank you all!
My CMakeLists.txt
is:
cmake_minimum_required(VERSION 3.21)
project(weights)
# Build OR-tools dependencies.
set(BUILD_DEPS ON)
# Disable SCIP solver.
set(USE_SCIP OFF)
set(CMAKE_CXX_STANDARD 17)
if(UNIX)
option(BUILD_SHARED_LIBS "Build shared libraries(.so)." ON)
else()
# only support for static build on Windows.
set(BUILD_SHARED_LIBS OFF)
endif()
if(BUILD_SHARED_LIBS)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
find_package(Eigen3 REQUIRED)
find_package(OpenMP REQUIRED)
find_package (ortools PATHS "/Users/jerome/CLionProjects/glop" NO_DEFAULT_PATH REQUIRED CONFIG)
add_executable(weights main.cpp)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-3")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -gdwarf-3")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH True)
target_include_directories(weights PRIVATE ${EIGEN3_INCLUDE_DIR})
target_include_directories(weights PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_features(weights PUBLIC
$<IF:$<CXX_COMPILER_ID:MSVC>,cxx_std_20,cxx_std_17>)
target_link_libraries(weights OpenMP::OpenMP_CXX ortools::ortools)
I simply get inexplicable linker errors such as
"__ZN19operations_research8MPSolver10MakeNumVarEddRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", referenced from:
__ZN19operations_research12BasicExampleEv in main.cpp.o