相关疑难解决方法(0)

如何使用GMP,MPFR,MPC,ELF逐个安装GCC,无需共享库?

如何使用当前版本,
使用正确版本的依赖项,而不是使用包管理器(如yum,rpm,apt,dpkg),而不是使用共享库,逐个安装GCC(GNU编译器集合)?

典型的开发人员可能希望以典型的方式安装GCC,使用您的包管理器(yum,rpm,apt,dpkg,port,brew等)或按照此处的说明进行操作(http://gcc.gnu.org/wiki/ InstallingGCC).

我的问题是如何一块一块地安装GCC,没有共享库.

  • 我想要一个完全独立的GCC,可以在不使用任何共享库的情况下在我的系统中移动,而无需创建任何共享库.
  • 这就是GCC所说的"困难之路",不建议普通用户使用.

GCC取决于:

  • GMP:GNU多精度算术库
  • MPFR:GNU多精度浮点舍入库
  • MPC:GNU多精度C库
  • ELF:可执行和可链接格式库
  • PPL:Parma Polyhedra库(可选,用于内存优化)

gcc elf mpfr gmp mpc

111
推荐指数
5
解决办法
10万
查看次数

检查特定gcc编译器的glibc版本

我的系统上安装了两个gcc编译器,一个是gcc 4.1.2(默认),另一个是gcc 4.4.4.我如何检查所使用的libc版本gcc 4.4.4,因为它/lib/libc.so.6显示了所使用的glibc gcc 4.1.2,因为它是默认的编译器.

c gcc glibc

46
推荐指数
7
解决办法
5万
查看次数

GCC specs文件:如何获取安装路径

我没有给-Wl,-rpath=$HOME/local/gcc52/lib64每次从源代码构建的GCC 5.2调用,而是spec以这种方式修改了它的文件:

*link_command:
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:    %(linker) -rpath=%:getenv(HOME /local/gcc52/lib64) ...
Run Code Online (Sandbox Code Playgroud)

但这取决于我的具体安装$HOME/local/gcc52.有没有更好的方法来引用调用的GCC本身的安装路径?

本手册页对我帮助不大:

c++ linux gcc

10
推荐指数
1
解决办法
1082
查看次数

如何使用GCC 4.8配置libstdc ++?

前段时间,我决定升级到GCC 4.8,以便尽早开始使用某些c ++ 11功能.不过,我有点偏执,并且在几天前的一个项目之前没有真正使用任何新功能(新编译器似乎工作正常,但可能只是因为我没有使用任何新功能.)

在这个新项目中,当我用= std = c ++ 11标志编译时,我没有遇到任何问题.但是,在运行时,我收到错误:

./main: /usr/lib/i386-linux-gnu/libstdc++.so.6: version找不到GLIBCXX_3.4.18'(./ main要求)`

我认为链接到与GCC 4.8相关联的更现代的libstdc ++库存在问题,但我不能在我的生活中弄清楚如何解决这个或适当的库应该在哪里.我记得象征性地将g ++和gcc二进制文件链接到gcc-4.8,它似乎正在工作,因为g++ -v返回:

Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/app/gcc/4.8.0/libexec/gcc/i686-pc-linux-gnu/4.8.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0 Thread model: posix gcc version 4.8.0 (GCC)

另一个在线线程让我看看ldd程序的输出,它确实告诉我链接的libstdc ++库的目录结构与二进制文件的目录结构不同.但是,我无法libstdc++在后者中找到合适的库,所以我不确定在哪里查看.输出ldd main是:

./main: /usr/lib/i386-linux-gnu/libstdc++.so.6: version找不到GLIBCXX_3.4.18'(./main要求)linux-gate.so.1 =>(0xb7791000)libstdc ++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6(0xb768e000 )libm.so.6 => /lib/i386-linux-gnu/libm.so.6(0xb7662000)libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1(0xb7644000)libc .so.6 => /lib/i386-linux-gnu/libc.so.6(0xb749b000)/lib/ld-linux.so.2(0xb7792000)`

我不确定这到底出了什么问题,我会继续谷歌搜索并寻找答案,但是你们提供的任何帮助都将不胜感激.如果有任何问题不清楚或者我忘了一些信息,请告诉我,我会尝试添加它.非常感谢!

c++ compiler-construction gcc g++ libstdc++

9
推荐指数
1
解决办法
1万
查看次数

C++项目使用现代编译器编译,但与过时的libstdc ++链接

考虑在Centos 7虚拟机或容器中构建和发布C++项目时的情况.默认gccCentos 74.8.为了允许开发人员使用现代C++,最新版本gcc(例如6.3)安装在作为CI服务器运行的Centos 7中.这提供了-std=c++14支持.

[builder@f7279ae9f33f build (master %)]$ /usr/bin/c++ -v 2>&1 | grep version
gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
[builder@f7279ae9f33f build (master %)]$ /opt/rh/devtoolset-6/root/usr/bin/c++  -v 2>&1 | grep version
gcc version 6.3.1 20170216 (Red Hat 6.3.1-3) (GCC) 
export CXX=/opt/rh/devtoolset-6/root/usr/bin/c++
make all -j4
...
Run Code Online (Sandbox Code Playgroud)

这是编译和链接命令的简短示例:

[ 78%] Building CXX object CMakeFiles/ucsdos.dir/src/merge_operator_string.cpp.o
/opt/rh/devtoolset-6/root/usr/bin/c++  -Ducsdos_EXPORTS -I/home/builder/src/dos/libucsdos/./src -I/home/builder/src/dos/libucsdos/./include -I/home/builder/src/dos/libucsdos/build/schema/cpp -I/home/builder/src/dos/libucsdos/build/schema -isystem /usr/local/include  -O2 -g -DNDEBUG -fPIC   -frtti …
Run Code Online (Sandbox Code Playgroud)

c++ gcc libstdc++ devtoolset

5
推荐指数
1
解决办法
775
查看次数

标签 统计

gcc ×5

c++ ×3

libstdc++ ×2

c ×1

compiler-construction ×1

devtoolset ×1

elf ×1

g++ ×1

glibc ×1

gmp ×1

linux ×1

mpc ×1

mpfr ×1