Ошибка компиляции gcc на Solaris 10

Я хочу скомпилировать исходный код, но есть некоторые ошибки компиляции о __sync_xxx функциях (__sync_bool_compare_and_swap и т. д.)

Версия GCC на компьютере — 3.4.3 (для поддержки атомарных встроенных функций это должен быть gcc 4.1 или выше), поэтому я скачал GCC v4.6, скопировал его в другой каталог (я не удалял v3.4.3), затем изменил $PATH путь для GCC, но он не работает (такая же ошибка).

Я хочу спросить, достаточно ли изменить путь gcc с export PATH=... для компиляции с новым GCC?


person osman toker    schedule 27.03.2012    source источник
comment
В контексте вашей среды сборки введите gcc --version, чтобы увидеть, находит ли она правильную цепочку инструментов.   -  person Andrew Tomazos    schedule 27.03.2012
comment
Вы выполнили любой шаг настройки, подходящий для этой сборки?   -  person dldnh    schedule 27.03.2012
comment
Не могли бы вы показать полный вывод, передав '-v', чтобы включить более подробную информацию?   -  person Volker Stolz    schedule 27.03.2012
comment
bash-3.00# gcc -v Использование встроенных спецификаций. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/opt/akala/GCC/install/libexec/gcc/i386-pc-solaris2.10/4.6.0/lto-wrapper Цель: i386-pc-solaris2.10 Настроено с помощью: ../gcc- 4.6.0/configure --prefix=/opt/akala/GCC/install --with-gmp=/opt/akala/GCC/libs/install --with-mpfr=/opt/akala/GCC/libs/install - -with-mpc=/opt/akala/GCC/libs/install --with-gettext=/opt/akala/GCC/libs/install --disable-checking --enable-werror --enable-languages=c Модель потока : posix gcc версии 4.6.0 (GCC)   -  person osman toker    schedule 27.03.2012
comment
@dldnh извините, я не мог понять, какую конфигурацию вы имеете в виду?   -  person osman toker    schedule 27.03.2012


Ответы (3)


Используйте следующую опцию configure при компиляции gcc:

--program-prefix=foo --program-suffix=bar

и он будет создавать программы bin в форме «foo-gcc-bar», чтобы вы могли различать разные сборки gcc.

Замените foo и/или bar соответствующим «тегом» для вашей сборки (например, «-4.6»).

Таким образом, если он не найдет ваш набор инструментов правильно, он быстро выйдет из строя, а не будет использовать версию 3.4.

Это также означает, что разные сборки наборов инструментов могут сосуществовать в каталогах стандартных префиксов установки.

person Andrew Tomazos    schedule 27.03.2012

Мы должны использовать переключатель -march=686, чтобы заставить его работать на Intel.

person johnnycrash    schedule 09.04.2012

Попробуйте проверить и обновить LD_LIBRARY_PATH, чтобы использовать путь библиотеки для нового установленного gcc.

person Efren    schedule 20.06.2013