Cplex库gcc编译链接错误
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
选项似乎已损坏,因为它无法找到函数名称。
错误在哪里? 在特定的链接中有一个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
图书馆的出现顺序很重要 。 将编译语句更改为
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/ -L -l
将库放在源文件之后 ,链接器将在库中搜索从源文件调用的函数。