我必須編譯和運行第三人稱項目,用C++編寫, 不幸的是,我沒有使用C++的經驗,在解決了所有打樁問題之後,我面對一系列鏈接問題。 我收到了很多我的課程,並收到了「undefined reference to」的典型鏈接錯誤 。由於代碼是真實的,並且由很多不同的文件組成,所以我向您展示了以下非常小的主文件,我在其中嘗試使用 編譯和運行我遇到的問題之一和地點即使在這個小程序中我也會得到相同的鏈接錯誤。 所以希望如果我設法找到解決這一點的代碼的方式,我會 管理與休息。在向你展示代碼本身之前,讓我先說ad- vanced,在這種情況下,我試圖從cplex.h和 中調用一個函數來保存你的一些建議,我已經正確安裝了cplex (有一件事是我可以驗證事實,我可以使用一些cplec函數和命令沒有問題),並且我還添加了cplex作爲我的外部庫(我使用Eclipse IDE)之一 ,而且我遇到了相同的lin- king error其他功能不是cplex。 最後,我在這個網站上對 網站的最近幾天進行了大量的研究,並且一般會關於鏈接錯誤而不能自己解決 的問題。結果任何人的幫助都非常感謝。 因此,這裏是代碼本身:鏈接我的項目的問題C++
#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
那麼,你不鏈接到除你自己的源文件之外的任何東西。有沒有一個cplex庫你應該使用這些頭文件? – Collin
Cplex庫是cplex.h(如果我沒有弄錯),另外,因爲我真的不熟悉鏈接進程上還有哪些鏈接源文件? – user3111197
這只是圖書館的標題。它定義了可用的函數和使用的數據類型,而不是函數本身。 Cplex應該有一些你需要編譯成一個庫的源文件,並直接鏈接到你的項目中。 – Collin