在OSX Lion上安装gcc 4.6.2:“g ++:错误尝试执行'cc1plus'”

时间:2011-12-22 16:13:36

标签: macos gcc g++ osx-lion

我下载了gcc 4.6.2(使用GMP,MPFR和MPC)并进行了构建。我可以在g++目录中看到build/gcc可执行文件。

当我尝试使用它时

./g++ test.cpp

我收到以下错误:

g++: error trying to exec 'cc1plus': execvp: No such file or directory

  1. 如何解决此问题?

  2. 默认情况下如何使用新构建的g ++?

  3. PS。 我按照这些步骤进行安装,但没有看到任何错误。

    $ export CC=/usr/bin/gcc-4.2
    $ export CXX=/usr/bin/g++-4.2
    $ export CPP=/usr/bin/cpp-4.2
    $ export LD=/usr/bin/ld # not /usr/bin/gcc-4.2!!
    
    Clean also your $PATH as much as possible:
    $ export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin
    (I don’t know exactly if this is necessary but works fine for me and when you close the Terminal the PATH reverts to its original setting).
    
    1. Download the GCC, GMP, MPFR, and MPC sources. The links are in the original post.
    2. Save everything in, say, ~/Downloads (or any directory you prefer).
    3. Start the Terminal and run the following commands (change the filenames according to the version you have downloaded):
    $ cd # go to your home directory
    $ mkdir src ; cd src
    $ tar -xzf ~/Downloads/gcc-4.6.1.tar.gz # change the path if you have saved the sources elsewhere!
    $ tar -xjf ~/Downloads/gmp-5.0.2.tar.bz2
    $ tar -xzf ~/Downloads/mpc-0.9.tar.gz
    $ tar -xzf ~/Downloads/mpfr-3.0.1.tar.gz
    $ cd gcc-4.6.1
    $ ln -s ../gmp-5.0.2 gmp
    $ ln -s ../mpc-0.9 mpc
    $ ln -s ../mpfr-3.0.1 mpfr
    
    4. Now create a build directory in ~/src but **outside** the gcc source tree, so that it can easily cleaned up to restart everything from scratch:
    $ cd ~/src
    $ mkdir build ; cd build
    $ ../gcc-4.6.1/configure
    $ make
    $ make install
    

1 个答案:

答案 0 :(得分:3)

祝贺在MacOS X 10.7上构建了GCC 4.6.2 - 我没有成功(即使使用我构建的4.6.1编译器也可以)。如果我记下了什么问题,我会与你分享战争故事。

GCC编译为安装在某个特定位置(默认为/usr/local,我相信)。当您在构建区域中运行时,您必须重定向它以在正确的备用位置中查找其可执行文件 - 有选项可以执行此操作。

运行g++ --help-B选项可能就是您所需要的。我的G ++ 4.6.1给出了这个输出:

$ g++ -print-search-dirs
install: /usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/
programs: =/usr/gcc/v4.6.1/libexec/gcc/x86_64-apple-darwin11.1.0/4.6.1/:/usr/gcc/v4.6.1/libexec/gcc/x86_64-apple-darwin11.1.0/4.6.1/:/usr/gcc/v4.6.1/libexec/gcc/x86_64-apple-darwin11.1.0/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/../../../../x86_64-apple-darwin11.1.0/bin/x86_64-apple-darwin11.1.0/4.6.1/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/../../../../x86_64-apple-darwin11.1.0/bin/
libraries: =/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/../../../../x86_64-apple-darwin11.1.0/lib/x86_64-apple-darwin11.1.0/4.6.1/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/../../../../x86_64-apple-darwin11.1.0/lib/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/../../../x86_64-apple-darwin11.1.0/4.6.1/:/usr/gcc/v4.6.1/lib/gcc/x86_64-apple-darwin11.1.0/4.6.1/../../../:/lib/x86_64-apple-darwin11.1.0/4.6.1/:/lib/:/usr/lib/x86_64-apple-darwin11.1.0/4.6.1/:/usr/lib/
$

我在运行--prefix=/usr/gcc/v4.6.1时指定了configure。 (提示:当你进行构建时,配置的前缀应该不存在,或者路径不应该涉及任何符号链接 - 因为GCC会在二进制文件中构建'真实路径'(解析所有符号链接),而不是在命令行上给出的值如果您有任何计划在不同的机器上使用该代码,这很重要。)