使用cplex与netbeans c ++,链接器问题

时间:2018-01-16 23:38:33

标签: c++ netbeans g++ cplex

我想在一个在Linux系统上运行的Netbeans c ++(版本8.2)项目中使用cplex(版本12.7.1)。

我按照这里给出的建议:

https://www.ibm.com/support/knowledgecenter/SSSA5P_12.7.1/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/set_up/GNU_Linux.html  并按以下方式配置我的项目:

对于c ++编译器:

Include-Directories: /opt/ibm/ILOG/CPLEX_Studio1271/concert/include;/opt/ibm/ILOG/CPLEX_Studio1271/cplex/include

Preprocessor Definitions: IL_STD

对于链接器:

Additional-Library-Directories: /opt/ibm/ILOG/CPLEX_Studio1271/cplex/lib/x86-64_linux/;/opt/ibm/ILOG/CPLEX_Studio1271/concert/lib/x86-64_linux/

Additional Linker Options: -lilocplex -lconcert

但是,我收到错误消息:

/usr/bin/ld: cannot find -lilocplex
/usr/bin/ld: cannot find -lconcert

我无法看到我在这里缺少的内容,如何让链接器找到相应的库?

1 个答案:

答案 0 :(得分:1)

您列出的选项部分正确,但缺少一些重要信息。下面,我将使用<COSDIR>来指明安装CPLEX Optimization Studio的目录(例如,上述示例中的/opt/ibm/ILOG/CPLEX_Studio1271/)。

对于C ++编译器:

Include-Directories: <COSDIR>/cplex/include;<COSDIR>/concert/include
Preprocessor Definitions: IL_STD

对于链接器:

Additional-Library-Directories: <COSDIR>/cplex/lib/x86-64_linux/static_pic;<COSDIR>/concert/lib/x86-64_linux/static_pic

Additional Linker Options: -lconcert -lilocplex -lcplex -lm -pthread

这应该可以解决问题(确保你完全正确地使用这些路径)。

另一件值得尝试的事情如下:

cd <COSDIR>/cplex/examples/x86-64_linux/static_pic
make ilolpex1 2>&1 | tee output.txt

这将编译COS附带的ilolpex1 C ++示例,您将能够看到在您的计算机上成功编译所需的所有选项。