- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
使用外部工具链别名 code sourcery lite 2011
使用 buildroot 交叉编译一个库导致
output/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
由于明显缺少 libgcc_s.a
# find . -iname "libgcc*"
./output/host/usr/arm-buildroot-linux-gnueabi/sysroot/lib/libgcc_s.so
./output/host/usr/arm-buildroot-linux-gnueabi/sysroot/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/armv4t/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/armv4t/lib/libgcc_s.so
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/thumb2/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/thumb2/lib/libgcc_s.so
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/lib/libgcc_s.so
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/armv4t/libgcc.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/armv4t/libgcc_eh.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/plugin/libgcc
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/thumb2/libgcc.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/thumb2/libgcc_eh.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/libgcc.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/libgcc_eh.a
有什么方法可以绕过这个问题但仍然静态链接吗?是否有 CLFAGS 或 LDFLAGS 选项静态链接除 libgcc_s
之外的所有内容?
到目前为止尝试过的东西(除了阅读 ld
和 gcc
手册页的适用部分):
CFLAGS="-static -static-libgcc"
CFLAGS="-static -shared-libgcc"
CFLAGS="-static -static-libgcc -Wl,-Bstatic"
CFLAGS="-static -shared-libgcc -Wl,-Bstatic"
添加 -Wl,-lgcc_s,-Bstatic
后,我得到了大量未定义/未知符号...(-Bshared
不是有效选项,ld 说)
/home/bernhard/buildroot-2013.08/output/target/usr/lib/libgio-2.0.a(libgio_2_0_la-glocalfileinfo.o): In function `_g_local_file_info_get':
glocalfileinfo.c:(.text+0x2d90): warning: Using 'getgrgid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/bernhard/buildroot-2013.08/output/target/usr/lib/libgio-2.0.a(libgio_2_0_la-glocalvfs.o): In function `g_local_vfs_parse_name':
glocalvfs.c:(.text+0x174): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/bernhard/buildroot-2013.08/output/target/usr/lib/libglib-2.0.a(libglib_2_0_la-gutils.o): In function `g_get_user_database_entry':
gutils.c:(.text+0x254): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
gutils.c:(.text+0x24c): warning: Using 'setpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
gutils.c:(.text+0x25c): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
gutils.c:(.text+0xa0): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
gutils.c:(.text+0xe0): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/bernhard/buildroot-2013.08/output/target/usr/lib/libgio-2.0.a(libgio_2_0_la-gnetworkaddress.o): In function `g_network_address_parse_sockaddr':
gnetworkaddress.c:(.text+0x1ac): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
<<<< SNIP >>>>
/home/bernhard/buildroot-2013.08/output/target/usr/lib/libxml2.a(xmlschemastypes.o): In function `xmlSchemaGetCanonValue':
xmlschemastypes.c:(.text+0x7680): undefined reference to `trunc'
xmlschemastypes.c:(.text+0x76bc): undefined reference to `trunc'
xmlschemastypes.c:(.text+0x7710): undefined reference to `floor'
xmlschemastypes.c:(.text+0x7760): undefined reference to `floor'
collect2: ld returned 1 exit status
最佳答案
有可能消除 libgcc_s.a
的使用,并带有阻止 gcc
使用内部内置函数(例如它的内置 memcpy)的标志,但您可能最好通过定位和使用它来获得服务。
看起来这个选项应该阻止使用内置的 -fno-builtin
。有关更多详细信息,请参见此处:http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
与共享 libgcc_s.so 的链接
如果 libgcc_s.a
丢失,或者希望将共享的 libgcc_s 与其他静态可执行文件一起使用,这应该可以完成工作:
CFLAGS="-static -Wl,-Bdynamic,-lgcc_s,-Bstatic"
关于c - 缺少 libgcc_s.a 怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18803559/
我的应用引入了许多共享库。有些是用 C++ 编写的,它会引入 libstdc++.so,而后者会引入 libgcc_s.so。还有一些是用纯 C 语言编写的,并与 -static-libgcc 链接。
使用外部工具链别名 code sourcery lite 2011 使用 buildroot 交叉编译一个库导致 output/host/opt/ext-toolchain/bin/../lib/gc
我为嵌入式 i386 兼容环境开发了一个 C++ 服务器应用程序,因此不需要交叉编译器。由同事开发的动态库,(大量)使用异常技术。要求该库实现网络通信,并且一旦复制到目标文件系统中,在客户端连接后,会
我们已经使用 RPM 文件在 AIX 6.1 上安装了 GCC 和 libgcc。 我想知道的是为什么“libgcc_s.a”没有创建在下面的文件夹下? /opt/freeware/lib/gcc/p
有什么建议可以解决这个缺少库的问题吗?在本例中,我使用 Sunfreeware 软件包,而不是从源代码编译。 $ /usr/local/ssl/bin/openssl version ld.so.1:
我有一个超简单的 C 程序: #include main() { printf("This is a C program\n"); } 无法编译,产生错误: cc main.c /usr/bin
我注意到在 SLES SP1 和 Ubuntu 10.04 上它们只有一个主要版本的 libgcc_s 在 /lib64 中。然而,在 RHEL 6.1 上,他们将主要版本指向次要版本,并将日期附加到
我正在使用 Fedora25,想使用 Android SDK 的 mksdcard 工具。不幸的是,它给了我一个错误,即找不到 libgcc_s.so.1,尽管它在我的系统中 => 1.) 错误 ld
场景:在 Ubuntu 12.4 lxc 主机(均为 64 位)上运行 debootstrapped Ubuntu 11.4 lxc guest 在 lxc guest 中,rsyslogd 不断崩溃
我已经从源代码安装了 gcc-7.1.0,基于:https://gcc.gnu.org/install/index.html使用较新的 gcc。 编译后的二进制文件对 libgcc 有额外的依赖: $
我正在尝试在运行 ubuntu 12.04 的 x86_64 机器上为 ARM 交叉编译 glibc 2.16。 我正在使用存储库中的 gcc-arm-linux-gnueabi 工具链。 配置:
我在 python 上;我正在尝试关闭通过 ThreadPoolExecutor 运行的函数,但关闭因错误而崩溃: libgcc_s.so.1 must be installed for pthrea
起初我警告说我/不是程序员,而只是管理员我试图理解一些操作 当我安装 Oracle 制作的程序时,我收到日志消息: /usr/bin/make -f ins_precomp.mk relink ORA
当像 gcc -march i486 -m32 -e Harimain -o bootpack.hrb bootpack.c hankaku.c naskfunc.o 这样使用 GCC 时,编译器运行
概述: 我正在尝试部署一个使用 OpenCV 和 Tensorflow 对人的面部表情进行分类的 Web 应用程序。因此,一个人上传了一张图片,应用程序会在面部周围生成一个带有该人表情的边界框。当我在
uWSGI 在 CentOS 5 上运行 python2.6 有时,uwsgi 日志中会出现以下错误: libgcc_s.so.1 must be installed for pthread_canc
我在使用 gcc 进行编译时遇到问题,-static、-static-libgcc 为编译器和 启用了标志-为 Ubuntu 12.10 上的链接器启用了 Wl,-static 标志。但是应用程序可以
我在使用 gcc 进行编译时遇到问题,-static、-static-libgcc 为编译器和 启用了标志-为 Ubuntu 12.10 上的链接器启用了 Wl,-static 标志。但是应用程序可以
我是一名优秀的程序员,十分优秀!