首页 > 解决方案 > 编译 Gurobi 示例代码时出现链接器错误

问题描述

我正在尝试使用编译这个Gurobi 示例

g++ dense_cpp.cpp -I $GUROBI_HOME/include

$GUROBI_HOME我的 Gurobi 安装的主目录在哪里。我收到以下错误:

Undefined symbols for architecture x86_64:
  "GRBLinExpr::GRBLinExpr(double)", referenced from:
      dense_optimize(GRBEnv*, int, int, double*, double*, double*, char*, double*, double*, double*, char*, double*, double*) in dense_cpp-1ed621.o
  "GRBLinExpr::operator+=(GRBLinExpr const&)", referenced from:
      dense_optimize(GRBEnv*, int, int, double*, double*, double*, char*, double*, double*, double*, char*, double*, double*) in dense_cpp-1ed621.o
[...]
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有谁知道如何解决这一问题?

标签: c++compiler-errorscompilationlinkergurobi

解决方案


正确的命令是

g++ dense_cpp.cpp -o dense -I $GUROBI_HOME/include -L $GUROBI_HOME/lib -lgurobi_c++ -lgurobi90

我的~/.bash_profile包含

export GUROBI_HOME="/Library/gurobi900/mac64"
export PATH="${PATH}:${GUROBI_HOME}/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"

推荐阅读