Установите библиотеку cplexAPI C ++ в CLion C ++ 11 и получите ошибку с ld.exe - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь использовать cplexAPI C ++ в проекте CLion с C ++ 11 на Windows 10. Я просмотрел несколько сообщений, связанных с этим вопросом (например, config CMakeLists.txt, install MinG64), и мне удалось настроить мой CMakeLists.txt следующим образом:

cmake_minimum_required(VERSION 3.15)
project(VRP_PRP)

add_executable(VRP_PRP main.cpp held-karp.h held-karp.cpp)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -m64 -O -fPIC -fexceptions -DNDEBUG -DIL_STD -std=c++11")

include_directories(/biblio/cplex/include/)
include_directories(/biblio/cplex/include/ilcplex)
include_directories(/biblio/concert/include)
include_directories(/biblio/concert/include/ilconcert)

target_link_libraries(VRP_PRP PUBLIC /biblio/cplex/lib/x64_windows_msvc14/stat_mda/cplex12100.lib)
target_link_libraries(VRP_PRP PUBLIC /biblio/cplex/lib/x64_windows_msvc14/stat_mda/ilocplex.lib)
target_link_libraries(VRP_PRP PUBLIC /biblio/concert/lib/x64_windows_msvc14/stat_mda/concert.lib)

target_link_libraries(VRP_PRP PUBLIC "-lilocplex -lconcert -lcplex -lm -lpthread")

случается так, что при создании моего проекта он выдает следующие ошибки :

[ 33%] Linking CXX executable VRP_PRP.exe
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lilocplex
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lconcert
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lcplex
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[2]: *** [CMakeFiles\VRP_PRP.dir\build.make:105: VRP_PRP.exe] Error 1
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:75: CMakeFiles/VRP_PRP.dir/all] Error 2
mingw32-make.exe: *** [Makefile:83: all] Error 2

и включая библиотеки (#include <ilcplex/ilocplex.h>) в моем главном. cpp он не может их найти.

Я попытался использовать два способа связать библиотеки в моем CMakeLists.txt:

а) #set (target_link_options "-lilocplex -lconcert -lcplex -lm -lpthread -framework CoreFoundation -framework IOKit -std=c++11")

б) #target_link_libraries(VRP_PRP PUBLIC "-lilocplex -lconcert -lcplex -lm -lpthread")

Любая помощь или идея будут оценены.

Спасибо.

1 Ответ

1 голос
/ 28 апреля 2020

Мое решение.

Я установил Visual Studio 2017 Community вместе с CPLEX 12.9 Academi c Версия, затем я открыл примеры, которые находятся в:

C: \ Program Files \ IBM \ ILOG \ CPLEX_Studio129 \ cplex \ examples

, и они уже идут с выполненной конфигурацией.

...