g ++的标准lib路径。以及如何添加新的

时间:2012-11-22 10:46:49

标签: gcc debian googletest

我想使用gtest,但执行告诉我

./netTest: error while loading shared libraries: libgtest.so.0:
  cannot open shared object file: No such file or directory
  1. gcc链接器查找libs的标准路径是什么
  2. Debian存储库的标准路径是什么
  3. 如何将libpath添加到g ++(-L标志正确?)
  4. 注意2:我问,因为gtest的lib在/usr/local/libs/但是只有python和gtest。所有其他库都在/usr/lib/中。因此我猜gtest安装程序出错了。

2 个答案:

答案 0 :(得分:2)

PS。也许您可以安装Debian libgtest-dev软件包(如果有的话)。

  
      
  1. gcc链接器查找libs的标准路径是什么
  2.   

您可以使用gcc -v -x c /dev/null -o /dev/null 2>&1 | grep LIBRARY_PATH

查看
  
      
  1. Debian存储库的标准路径是什么
  2.   

也许你的意思是动态加载器将寻找共享库。 查看/etc/ld.so.conf中的/etc/ld.so.conf.d/和/或文件。

  
      
  1. 如何将libpath添加到g ++(-L标志正确?)
  2.   

您可以使用--rpath选项ld。但是,我建议仅在开发期间使用它而不是部署。

您还可以将LD_LIBRARY_PATH设置为libgtest.so.0的位置。

答案 1 :(得分:2)

前面问题的答案。 gTest不再使用预编译的库。

  Use of precompiled libgtest Not Recommended
  -------------------------------------------

The Google C++ Testing Framework uses conditional compilation for some
things.  Because of the C++ "One Definition Rule", gtest must be
compiled with exactly the same flags as your C++ code under test.
Because this is hard to manage, upstream no longer recommends using
precompiled libraries [1].
     

- Steve M. Robbins,星期六,2012年4月21日17:00:56 -0500

为什么我没有在Wheezy找到这个库,我不会感到惊讶:)