链接我的Project C ++的问题

时间:2013-12-17 12:47:20

标签: c++ eclipse linker-errors

我必须编译并运行用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

1 个答案:

答案 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