谢谢你们回答我之前的问题对函数的未定义引用 https://stackoverflow.com/questions/7433984/undefined-reference-to-function-declared-in-h-file-c-language。正如您所建议的,问题的原因不是链接库。现在我已经生成了可执行文件:(我的g++和gcc的版本是4.4.5。我使用的是Ubuntu 10.10。)
g++ -o ex_addinst ./ex_addinst.o -L/home/li/work/tools/lindo/lindoapi/bin/linux64 -m64 -llindo64 -lmosek64 -lconsub3 -lc -ldl -lm -lguide -lpthread -lsvml -limf -lirc
但有来了另一个问题,当我运行可执行文件时
./ex_addinst
出现错误:(我不确定当前是否应该开始一个新问题......)
./ex_addinst: error while loading shared libraries: liblindo64.so.6.0: cannot open shared object file: No such file or directory
但 liblindo64.so.6.0 存在于 lib ~/lindoapi/bin/linux64 的文件夹中,其中包含以下文件:
libconsub3.so libirc.so liblindojni.so libmosek64.so.5.0 lindo.par
libguide.so liblindo64.so liblindojni.so.6.0.3 libsvml.so placeholder
libimf.so liblindo64.so.6.0 libmosek64.so lindoapivars.sh runlindo
我在 liblindo.so.6.0 和 liblindo.so 之间创建了一个符号链接:
ln -sf liblindo64.so.6.0 liblindo64.so
有'-llindo64'是g++命令,所以我想liblindo64.so.6.0应该已经链接了。
我尝试将 -L 更改为 -Llib,但没有帮助。
谁能告诉我这里出了什么问题吗?谢谢!