首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ld错误"/opt/bin/ld:在使用g++搜索/lib/libm.so.6“时跳过不兼容的/lib/libm.so.6

ld错误"/opt/bin/ld:在使用g++搜索/lib/libm.so.6“时跳过不兼容的/lib/libm.so.6
EN

Unix & Linux用户
提问于 2016-02-16 09:49:52
回答 1查看 4.5K关注 0票数 0

当我试图测试编译一个非常简单的程序时,我遇到了这个错误:

代码语言:javascript
复制
#ifdef __cplusplus
extern "C"
#endif
int
main ()
{
return 0;
}

如果我使用g++编译,我会得到以下错误消息:

代码语言:javascript
复制
g++ -o conftest -I/opt/include -L/opt/lib -Wl,--library-path=opt/lib testconftest.cpp

/opt/bin/ld: skipping incompatible /lib/libm.so.6 when searching for /lib/libm.so.6
/opt/bin/ld: cannot find /lib/libm.so.6
/opt/bin/ld: cannot find /lib/libmvec.so.1

但编译将通过gcc:

代码语言:javascript
复制
gcc -o conftest -I/opt/include -L/opt/lib -Wl,--library-path=opt/lib testconftest.cpp

注意,该系统是32位和64位的混合体,所有32位程序和库都是/lib、/bin、/sbin等。所有64位程序和库都在/opt/lib、/opt/bin、opt/sbin等。我知道/lib/libm.so.6将是错误的版本,更正后的版本在/opt/lib中。另外,gcc,g++,ld都是64位,都在/opt子文件夹中,并且已经成功地用gcc编译了其他复杂的程序。文件/lib/libm.so.6是指向/lib/libm-2.6.1.so的符号链接;File /opt/lib/lim.so.6是指向/opt/lib/libm-2.22.so*的符号链接。

代码语言:javascript
复制
file /opt/lib/libm-2.22.so
/opt/lib/libm-2.22.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, for GNU/Linux 2.6.32, stripped

file /lib/libm-2.6.1.so
/lib/libm-2.6.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.8, stripped

g++ --version
g++ (OpenWrt GCC 4.8.5) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
EN

回答 1

Unix & Linux用户

发布于 2016-03-09 15:33:31

由于我不能重现你所遇到的问题,我只能给你一些提示。

看看这个回答,因为在链接器阶段使用g++会自动添加一些额外的库。您可以在编译/链接时使用-v选项,以便更清楚地了解所包含的libs。

-v打印(在标准错误输出上)运行编译阶段所执行的命令。还打印编译器驱动程序的版本号以及预处理器和编译器的版本号。

g++ auto将libstdc++添加到链接器阶段时,请查看它在路径中声明的位置。

代码语言:javascript
复制
$  ldconfig -p | grep stdc++
    libstdc++.so.6 (libc6,x86-64) => /usr/lib64/libstdc++.so.6
    libstdc++.so.6 (libc6) => /usr/lib/libstdc++.so.6
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/263580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档