Установка gcc 4.6.2 на OSX Lion: "g ++: ошибка при попытке выполнить cc1plus" - PullRequest
3 голосов
/ 22 декабря 2011

Я скачал 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 ++ по умолчанию?

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 Ответ

3 голосов
/ 22 декабря 2011

Поздравляем с получением GCC 4.6.2 на MacOS X 10.7 - у меня ничего не получилось (даже с компилятором 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 встроит «реальный путь» в двоичный файл (разрешает все символические ссылки), а не значение, указанное в командной строкеЭто имеет значение, если у вас есть какие-либо планы по использованию кода на разных компьютерах.)

...