将共享库添加到makefile

时间:2017-12-14 04:18:36

标签: c++ makefile

我想链接共享库libfoo.so,其相对路径为../path/to/lib。遵循编译命令:

g++ -o /executable/path test.o -L../path/to/lib -lfoo

给出

/usr/bin/ld: can not find -lfoo
collect2: error: ld returned 1 exit status

并且此命令提供了不同的错误消息

g++ -o /executable/path test.o -L../path/to/lib/libfoo.so

给出

undefined reference to 'functions and class members in libfoo.so'

它似乎既没有正确编译。我想念一些东西吗?

1 个答案:

答案 0 :(得分:0)

似乎库未正确安装。我不知道哪个是dist。你在使用,但这些步骤应该可以解决问题。

运行此命令以查看库的位置。

find / -name 'libfoo.so.*'

将此添加到/etc/ld.so.conf。它包含搜索库的默认目录。

include /usr/local/lib
include /usr

安装或更新运行此命令。

ldconfig
祝你好运......

修改1:尝试运行LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib lfoo

编辑2:运行此命令,但只会设置一次。

export LD_LIBRARY_PATH=/usr/local/lib/

顺便说一下,每次更新库时都需要运行ldconfig。