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