2017-05-31 47 views
0

我想在编译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?请帮忙。

谢谢。

+0

即使您正在编译的程序是用C++编写的,但这个问题不是关于C++作为一种语言,因此请删除该标记。 –

回答

0

glibc-static仅在可选通道中可用。可选渠道中的RPM软件包在官方不受支持,这就是默认情况下未启用这些渠道的原因。

启用可选通道的确切命令取决于产品型号。像

subscription-manager repos --enable=rhel-7-server-optional-rpms 

可以工作,但细节取决于你的环境(这是一个系统管理员比编程问题在这一点上)。

注意: Red Hat不支持静态链接有很好的理由。你真的应该避免它。