2015-06-16 174 views
-1
gcc -I/opt/cplex-studio-125/cplex/include -lcplex -L/opt/cplex-studio-125/cplex/lib/x86-64_sles10_4.1/static_pic mipex1.c 

我想從cplex編譯一個例子。 -I選項是好的。 -L選項似乎已損壞,因爲它找不到函數名稱。Cplex庫gcc編譯鏈接錯誤

錯誤在哪裏?在具體的鏈接中有一個libcplex.a

/tmp/ccf5sKky.o: In function `main': 
mipex1.c:(.text+0x9f): undefined reference to `CPXopenCPLEX' 
mipex1.c:(.text+0xee): undefined reference to `CPXgeterrorstring' 
mipex1.c:(.text+0x125): undefined reference to `CPXsetintparam' 
mipex1.c:(.text+0x222): undefined reference to `CPXcreateprob' 
mipex1.c:(.text+0x2e1): undefined reference to `CPXcopylp' 
mipex1.c:(.text+0x334): undefined reference to `CPXcopyctype' 
mipex1.c:(.text+0x380): undefined reference to `CPXmipopt' 
mipex1.c:(.text+0x3cc): undefined reference to `CPXgetstat' 
mipex1.c:(.text+0x403): undefined reference to `CPXgetobjval' 
mipex1.c:(.text+0x474): undefined reference to `CPXgetnumrows' 
mipex1.c:(.text+0x490): undefined reference to `CPXgetnumcols' 
mipex1.c:(.text+0x4be): undefined reference to `CPXgetx' 
mipex1.c:(.text+0x51c): undefined reference to `CPXgetslack' 
mipex1.c:(.text+0x5f9): undefined reference to `CPXwriteprob' 
mipex1.c:(.text+0x64d): undefined reference to `CPXfreeprob' 
mipex1.c:(.text+0x697): undefined reference to `CPXcloseCPLEX' 
mipex1.c:(.text+0x6e3): undefined reference to `CPXgeterrorstring' 
collect2: error: ld returned 1 exit status 
+0

這是一條路... – peter

+0

好吧,明白了,我的壞,對不起。 –

+0

不,它是一個目錄,裏面有libcplex.a。我做了一個CD,我在一個目錄 – peter

回答

3

The order of appearance of the library matters。改變你的編譯語句

gcc -I/opt/cplex-studio-125/cplex/include mipex1.c L/opt/cplex-studio-125/cplex/lib/x86-64_sles10_4.1/static_pic -lcplex 

(通用版)

gcc -I/<path> -L<path> <source.c> -l<lib> 

把圖書館後的源文件,這樣,鏈接器將搜索庫中的源文件調用的函數。

+0

@piedar NVM,增加了一個更好的。 :-) –