linux下编译时为什么老报这样的错

来源:百度知道 编辑:UC知道 时间:2024/06/05 22:23:35
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /home/ml/myproject/test/lib/libgtest.so when searching for -lgtest
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /home/ml/myproject/test/lib/libgtest.a when searching for -lgtest
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: cannot find -lgtest

我的lib文件家下确定有libgtest.a这个文件。

如果确定源码没问题,那就是编译器和操作系统的问题了
换成32位的中文版linux试试看

在编译时指定库在哪
如果你在lib文件下编译,应该加上: -L.
-L DIRECTORY 寻找要链接的库文件时搜索的文件路径
如:
gcc -o main main.c -lgtest -L.

运行在编译时使用了动态库的程序:
LD_LIBRARY_PATH 可以用于指定额外的加载库的位置
$export LD_LIBRARY_PATH=.:$LD_LIBRARY_PA
$./main
在搜索了该变量指定的位置后,/usr/lib、/lib以及/etc/ld.so.conf里指定的路径也是运行时搜索库的位置

搜索到的库文件不兼容,更新搜索路径或用兼容的库文件替代原库文件,

权限不够吧,su一下

是没有导入LD_LIBRARY_PATH