我目前正在尝试将Gurobi库包含在我的C++项目中。我使用CLion作为我的IDE,因此我将CMakeLists.txt
更改为:
cmake_minimum_required(VERSION 3.17)
project(test_gurobi)
set(CMAKE_CXX_STANDARD 14)
include_directories("/opt/gurobi951/linux64/include")
add_executable(test_gurobi main.cpp)
target_link_libraries(test_gurobi "/opt/gurobi951/linux64/lib/libgurobi95.so")
target_link_libraries(test_gurobi "/opt/gurobi951/linux64/lib/libgurobi_c++.a")
在我看来应该管用的。但是,下面是最简单的示例
#include "gurobi_c++.h"
using namespace std;
int main(int argc, char *argv[]) {
GRBEnv env = GRBEnv(true);
return 0;
}
由于我的main.cpp
在编译时会产生以下错误:
/usr/bin/ld: /opt/gurobi951/linux64/lib/libgurobi_c++.a(Env.o): in function `GRBEnv::~GRBEnv()':
Env.cpp:(.text+0x2c): undefined reference to `GRBfreeenv'
/usr/bin/ld: /opt/gurobi951/linux64/lib/libgurobi_c++.a(Env.o): in function `GRBEnv::getErrorMsg() const':
Env.cpp:(.text+0x5c): undefined reference to `GRBgeterrormsg'
/usr/bin/ld: /opt/gurobi951/linux64/lib/libgurobi_c++.a(Env.o): in function `GRBEnv::GRBEnv(bool)':
Env.cpp:(.text+0xe3): undefined reference to `GRBemptyenvadv'
/usr/bin/ld: Env.cpp:(.text+0x18a): undefined reference to `GRBloadenvadv'
/usr/bin/ld: Env.cpp:(.text+0x1ae): undefined reference to `GRBfreeenv'
.
.
.
Env.cpp:(.text+0x15c4): undefined reference to `GRBwriteparams'
/usr/bin/ld: /opt/gurobi951/linux64/lib/libgurobi_c++.a(Env.o): in function `GRBEnv::readParams(std::string const&)':
Env.cpp:(.text+0x1674): undefined reference to `GRBreadparams'
/usr/bin/ld: /opt/gurobi951/linux64/lib/libgurobi_c++.a(Env.o): in function `GRBEnv::message(std::string const&)':
Env.cpp:(.text+0x47): undefined reference to `GRBmsg'
collect2: error: ld returned 1 exit status
make[3]: *** [CMakeFiles/test_gurobi.dir/build.make:106: test_gurobi] Error 1
make[2]: *** [CMakeFiles/Makefile2:96: CMakeFiles/test_gurobi.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:103: CMakeFiles/test_gurobi.dir/rule] Error 2
make: *** [Makefile:138: test_gurobi] Error 2
有人知道为什么我的代码不编译吗?提前感谢!
发布于 2022-08-16 10:37:49
请尝试为Gurobi:如何使用CMake构建Gurobi /C++项目?提供的C/C++项目使用官方的如何使用CMake构建Gurobi /C++项目?文件
本指南包括一个FindGUROBI.cmake
和一个CMakeLists.txt
示例。
https://stackoverflow.com/questions/73280681
复制相似问题