将gcc 4.8.2编译为静态可执行文件

时间:2014-06-17 10:21:58

标签: c++ gcc

我已经下载了gcc4.8.2及相关软件包。在make&& amp;&和make install:

configure --prefix=${HOME}/gcc --with-gmp=${HOME}/gcc --with-mpfr=${HOME}/gcc --with-mpc=${HOME}/gcc --disable-multilib

在我运行新的g ++之前,一切都很好:

${HOME}/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/cc1plus: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory

我可以指定LD_LIBRARY_PATH来包含mpc库的位置,但是我想将它们编译为g ++或gcc as static。但是我在配置'中没有看到这样的选项。脚本。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

不确定gcc是否可以构建为静态可执行文件。但您不需要更改LD_LIBRARY_PATHld.so.conf,您的自定义构建版本gcc必须立即生效。

检查mpc和朋友共享库所在的库。它可以是${PREFIX}/lib${PREFIX}/lib64

我通常构建将--prefix=${PREFIX} --libdir=${PREFIX}/lib64传递给configure的先决条件库。

然后使用以下命令配置gcc:

libs := gmp mpfr mpc cloog isl binutils
gcc_libs_configure := $(patsubst %,--with-%-include=${PREFIX}/include,${libs}) $(patsubst %,--with-%-lib=${PREFIX}/lib64,${libs})

configure.gcc : install.isl install.gmp install.mpc install.mpfr install.cloog install.binutils
    cd gcc-${gcc_version}-obj && ../gcc-${gcc_version}-src/configure --prefix=${PREFIX} --program-suffix=${suffix.gcc.${gcc_version}} ${gcc_libs_configure} --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit --enable-checking=release --disable-multilib --enable-languages=c,c++,fortran,lto --enable-plugin --enable-initfini-array --enable-gold=default --enable-libstdcxx-time --enable-linker-build-id --with-linker-hash-style=gnu --disable-libgcj