无glibc静态包可用
问题描述:
我想在编译C++程序时静态链接库。
G ++(GCC)4.8.5 20150623(红帽4.8.5-4)无glibc静态包可用
$ g++ -std=c++11 -I/home/jerry/Desktop/tiny-dnn -m32 -pthread -static train.cpp -o train
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
我发现这个职位 (/usr/bin/ld: cannot find -lc while compiling with makefile),说要安装glibc的静电。
bash-4.2# sudo yum install glibc-static
Loaded plugins: langpacks
ol7_UEKR3 | 1.2 kB 00:00:00
ol7_latest | 1.4 kB 00:00:00
No package glibc-static available.
Error: Nothing to do
bash-4.2# yum info glibc-static
Loaded plugins: langpacks
Error: No matching Packages to list
bash-4.2# yum search glibc
Loaded plugins: langpacks
================================================== N/S matched: glibc ===================================================
glibc-common.x86_64 : Common binaries and locale data for glibc
compat-glibc.x86_64 : Compatibility C library
compat-glibc-headers.x86_64 : Header files for development using standard C libraries.
glibc.i686 : The GNU libc libraries
glibc.x86_64 : The GNU libc libraries
glibc-devel.i686 : Object files for development using standard C libraries.
glibc-devel.x86_64 : Object files for development using standard C libraries.
glibc-headers.x86_64 : Header files for development using standard C libraries.
glibc-utils.x86_64 : Development utilities from GNU C library
kdesdk-kmtrace.x86_64 : Assist with malloc debugging using glibc's "mtrace" functionality
kernel-headers.x86_64 : Header files for the Linux kernel for use by glibc
latrace.i686 : LD_AUDIT feature frontend for glibc 2.4+
latrace.x86_64 : LD_AUDIT feature frontend for glibc 2.4+
Name and summary matches only, use "search all" for everything.
我该如何安装glibc-static?请帮忙。
谢谢。
答
glibc-static
仅在可选通道中可用。可选渠道中的RPM软件包在官方不受支持,这就是默认情况下未启用这些渠道的原因。
启用可选通道的确切命令取决于产品型号。像
subscription-manager repos --enable=rhel-7-server-optional-rpms
可以工作,但细节取决于你的环境(这是一个系统管理员比编程问题在这一点上)。
注意: Red Hat不支持静态链接有很好的理由。你真的应该避免它。
即使您正在编译的程序是用C++编写的,但这个问题不是关于C++作为一种语言,因此请删除该标记。 –