我必须编译并运行用C ++编写的第三人称项目, 不幸的是,我没有使用C ++的经验,在解决了所有的 打桩问题,我面临一系列连接问题。 我收到很多我的类和函数的典型链接错误 “未定义引用”。由于代码是真实的 - 我向你展示了很多不同的文件 我尝试编译和运行的以下非常小的主文件 我遇到问题的一个功能,以及我在这里得到的功能 小程序相同的链接错误。 所以希望如果我能找到解决这些代码的方法,我会的 与其他人一起管理。在向您展示代码之前,让我在广告中说 vanced,在这种情况下,我试图从cplex.h调用一个函数 为了避免一些建议,我已经正确安装了cplex (我可以通过一些事实证明我可以使用一些cplec函数 - 没有问题的tions和命令)我还添加了cplex作为其中之一 我的外部库(我使用Eclipse IDE),而且我经历了同样的lin- 其他函数不是cplex的王错误。 最后,我在最近几天做了大量的研究 网站和一般关于链接错误而无法解决 靠我自己因此,非常感谢任何人的帮助。 所以这是代码本身:
#include <iostream>
#include "/home/used/cplex/include/ilcplex/cplex.h"// that's my cplex.h path
using namespace std;
int main(){
double temp;
int a,c;
CPXENVptr env;// in these two uses of cplex variables I don't get any error
CPXNETptr net;//
CPXNETgetdj( env , net , &temp , c , a ); // when I try to use this or any function from cplex I get an linking error
return( 0 );
}
我也提出原始函数,因为它是用cplex.h编写的,看我是这样做的 正确使用该函数,以便我不会将链接器与错误的用法混淆 功能。
CPXLIBAPI
int CPXPUBLIC
CPXNETgetdj (CPXCENVptr env, CPXCNETptr net, double *dj, int begin,
int end);
打印机错误本身是:
Building target: structures
Invoking: Cross G++ Linker
g++ -o "structures" ./src/div.o ./src/prod.o ./src/structures.o
./src/structures.o: In function `main':
/home/used/workspace/structures/Debug/../src/structures.cpp:21: undefined reference to `CPXNETgetdj'
collect2: error: ld returned 1 exit status
答案 0 :(得分:1)
#include "/home/used/cplex/include/ilcplex/cplex.h"
只有在/
处于搜索范围内时才有效。此外,没有任何论据负责实际包含CPLEX库。
我建议将其更改为#include "ilcplex/cplex.h"
以便于移植,然后运行它:
g++ -o "structures" ./src/div.o ./src/prod.o ./src/structures.o \
-I/home/used/cplex/include -L/home/used/cplex/lib/x86-64_debian4.0_4.1/static_pic \
-lcplex -lilocplex
虽然您必须制作库的实际路径(/home/used/cplex/lib/x86-64_debian4.0_4.1/static_pic
是否正确路径)并且可能将其更正为正确路径。
根据找到的文档here。