2013-04-27 59 views
0

我使用clang构建程序,并使用外部库。我一直在用它们提供的二进制文件(/usr/lib/libary.so)开发一段时间,但现在我想转到更新的版本。将路径更改为可执行文件中的动态库

我下载了源代码并构建它,生成一个包含文件和一个新库(在我的〜/ library/build目录中)。

当编译我的代码,我用

clang++ main.cpp -I ~/library/include -L ~/library/build/lib -llibrary 

这包括最新的标题,并找到正确的库(我知道它找到正确的库,因为没有-L标志,我得到一个错误说'未定义引用NewlyIntroducedFunction')。

然而,当我尝试的a.out运行,我得到的错误:

./a.out: symbol lookup error: ./a.out: undefined symbol: NewlyIntroducedFunction 

运行在./a.out LDD显示我行:

library.so => /usr/lib/library.so 

所以我假设尽管在编译时使用了正确的库,但在运行时却没有。我添加了〜/ library/build到PATH的开始,并且不起作用。

我该怎么做才能获得正确版本的library.so?

回答

2

您的LD_LIBRARY_PATH变量(库搜索路径)可能不正确

相关问题