首先,我对 C++ 完全陌生,所以如果您知道答案,请耐心等待我 ;)。这是我的问题:我想在 C++ 代码中使用 Gurobi 解决 IP。代码本身似乎很好,因为没有标记为错误的表达式。但是,当我运行代码时,我收到以下错误报告:
Undefined symbols for architecture x86_64:
和许多这样的行:
"GRBLinExpr::GRBLinExpr(GRBVar, double)", referenced from:
bridge_problem::max_flow_lp(time_expanded_network&, lemon::ListDigraph&, lemon::DigraphExtender<lemon::ListDigraphBase>::ArcMap<int>&, lemon::DigraphExtender<lemon::ListDigraphBase>::ArcMap<int>&, lemon::DigraphExtender<lemon::ListDigraphBase>::NodeMap<int>&) in bridge_problem.cpp.o
我想错误出在我的 CMakeList.txt 文件中。这个文件是自动创建的,因为我使用的是 Clion,并且为了包含 gurobi,我输入了这些额外的行:
include_directories(/Library/gurobi604/mac64/include)
link_directories(/Library/gurobi604/mac64/lib/libgurobi_c++.a)
link_directories(/Library/gurobi604/mac64/lib/libgurobi60.so)
非常感谢任何帮助,如果您需要更多信息,请告诉我。(如果我使用mac很重要)。
编辑:自从我找到这个后,我更改了我的制作代码: https ://github.com/joschu/trajopt/blob/master/cmake/modules/FindGUROBI.cmake 我更改了版本,因为我有 gurobi604 但它仍然不起作用. 我的新错误信息是:
fatal error: 'gurobi_c++.h' file not found #include "gurobi_c++.h"
我不明白,因为我想
find_path(GUROBI_INCLUDE_DIR
NAMES gurobi_c++.h
PATHS "$ENV{GUROBI_HOME}/include"
"/Library/gurobi604/mac64/include"
"C:\\libs\\gurobi604\\include"
)
那应该很容易找到。有什么建议吗?