首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >包括C++中的Gurobi

包括C++中的Gurobi
EN

Stack Overflow用户
提问于 2022-08-08 15:46:43
回答 1查看 58关注 0票数 0

我目前正在尝试将Gurobi库包含在我的C++项目中。我使用CLion作为我的IDE,因此我将CMakeLists.txt更改为:

代码语言:javascript
运行
复制
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")

在我看来应该管用的。但是,下面是最简单的示例

代码语言:javascript
运行
复制
#include "gurobi_c++.h"

using namespace std;

int main(int argc, char *argv[]) {

    GRBEnv env = GRBEnv(true);
    return 0;
}

由于我的main.cpp在编译时会产生以下错误:

代码语言:javascript
运行
复制
/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

有人知道为什么我的代码不编译吗?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-08-16 18:37:49

请尝试为Gurobi:如何使用CMake构建Gurobi /C++项目?提供的C/C++项目使用官方的如何使用CMake构建Gurobi /C++项目?文件

本指南包括一个FindGUROBI.cmake和一个CMakeLists.txt示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73280681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档