Я пытаюсь установить gcc-5.0
из источника на моем OS X 10.7.4
с установленным в Apple gcc-4.2
*1003* и gcc-5.0
и соответствующими версиями зависимостей gcc (gmp
,mpfr
, mpc
) установлены в /usr/local
и все они работают нормально. Причина, по которой я пытаюсь (пере) установить gcc-5.0, заключается в том, что я хочу установить его в отдельную папку, такую как /usr/local/gcc-5.0
, поэтому скрипт конфигурирования (запускается из пустой папки gcc-5.0-build
)
../gcc-5.0-src/configure --prefix=/usr/local/gcc-5.0 --with-gmp=/usr/local/lib --with-mpfr=/usr/local/lib --with-mpc=/usr/local/lib --enable-languages=c,c++
После make
и около 1 ГБ скомпилированных файлов я получаю эту ошибку (усеченную)
dyld: Symbol not found: __ZNKSt11logic_error4whatEv
Referenced from: <my-build-dir>/x86_64-apple-darwin11.4.0/libstdc++-v3/src/.libs/libstdc++.6.dylib
Expected in: flat namespace
После просмотра многих веб-страниц и сообщений в Stackoverflow я пробовал разные вещи, такие как:
добавление LDFLAGS="-flat_namespace"
до ./configure
компиляция с использованием встроенной в Apple gcc-4.2
вместо gcc-5.0
, но, к счастью, я все равно получаю эту ошибку.
Проверка libstdc++.6.dylib
nm -g x86_64-apple-darwin11.4.0/libstdc++-v3/src/.libs/libstdc++.6.dylib | grep __ZNKSt11logic_error4whatEv
возвращает: U __ZNKSt11logic_error4whatEv
, чтобы он содержал соответствующий символ.
otool -hv x86_64-apple-darwin11.4.0/libstdc++-v3/src/.libs/libstdc++.6.dylib
возвращает (усечено) DYLDLINK TWOLEVEL
, что означает, что это двухуровневое пространство именlib.
Мои вопросы:
1- В сообщении Expected in: flat namespace
означает ли это, что компилятору нужна абсолютно только плоская библиотека пространства имен? Я имею в виду, что абсолютно невозможно использовать это двухуровневое пространство имен lib? После комментария @GM символ не определен в рассматриваемой библиотеке, и это делает отсутствие или присутствие flat namespace
неуместным, потому что это содержимое библиотеки, которая вызывает проблему, а не ее тип.
2- Что нужно сделать, чтобы это исправить и скомпилировать gcc-5.0
?
Спасибо.