gcc 4.6 на Mac, как заставить его работать?

У меня проблемы с запуском gcc 4.6 на Mac 10.8.5.

Мой опыт в таких вопросах очень ограничен, и я искал и пробовал разные вещи, чтобы заставить это работать, но безрезультатно. Мне очень жаль, если ответ на эту проблему действительно прост (я действительно надеюсь, что это так!)

Это моя проблема:

Мне нужно запустить небольшую программу для проведения анализа, которая называется Байескан. Для этого программного обеспечения требуется библиотека, найденная как часть gcc4.6, для работы на MacOSX. Об этом говорится на страницах их дистрибутива (http://cmpg.unibe.ch/software/BayeScan/download.html)

Я установил gcc4.6 с помощью homebrew*.

Однако это не решает мою проблему. Поскольку я все еще получаю следующее сообщение об ошибке, когда пытаюсь запустить программное обеспечение:

dyld: библиотека не загружена: /usr/local/lib/libgomp.1.dylib

Google говорит мне, что libgomp.1.dylib является частью gcc46.

Когда я набираю: gcc --version, я получаю:

Настроено с помощью: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM версии 5.0 (clang-500.2.79) (на основе LLVM 3.3svn) Цель: x86_64-apple-darwin12.5.0

Это заставляет меня поверить, что когда мой компьютер ищет gcc, он ищет старую версию, в которой отсутствует необходимая библиотека. Или gcc4.6 установлен неправильно.

Итак, у меня есть два вопроса:

1) Правильно ли мое предположение/вывод?

2) Как заставить мой компьютер указывать на gcc4.6?

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

Есть ли хороший ресурс для изучения того, как создавать среды и организовывать зависимости, поскольку это проблема, с которой я часто сталкиваюсь?

(*Мне посоветовали использовать доморощенный, но я думаю, что это пустая трата времени для меня, поскольку моих компьютерных знаний недостаточно, чтобы он был для меня полезным инструментом, поскольку документация довольно ограничена).


person user2096176    schedule 22.01.2014    source источник
comment
Это путь к gcc. Я использую macports, где все установлено в /opt/local/bin, и есть семантика select, чтобы сделать whatever-util системой по умолчанию. В доморощенном, AFAIK, двоичные файлы устанавливаются по разным путям. Вот почему я его не использую, так как у меня была бы ужасная переменная $PATH (и тот факт, что у нее намного меньше портов). Поэтому я думаю, что вам нужно установить свой $PATH, когда вы берете компилятор Xcode clang, который маскируется под gcc.   -  person trojanfoe    schedule 22.01.2014


Ответы (2)


Вам нужно указать свое программное обеспечение, чтобы использовать правильный GCC. Установка gcc46, вероятно, поместила двоичный файл компилятора в /usr/local/opt/gcc46/bin/gcc-4.6 или, возможно, в /usr/local/bin/gcc-4.6, в зависимости от параметров установки, поэтому используйте любой доступный параметр, чтобы заставить его использовать этот компилятор.

person Peter Eisentraut    schedule 27.01.2014
comment
Вы не упомянули, как указать правильный gcc. Обычно это делается с помощью $PATH. - person trojanfoe; 27.01.2014

Спасибо за ответ.

Мне удалось выяснить проблему и запустить программное обеспечение. Я сделал две вещи:

1) Как было предложено, измените мой $PATH так, чтобы он указывал на правильный компилятор gcc, что было вопросом поиска, где доморощенный поместил ссылку usr/local/lib/, поэтому я поместил ее в начало $PATH

2) Кроме того, мне нужно было найти, где доморощенный установил библиотеку libgomp.1.dylib, и затем я сделал ссылку на нее в usr/local/lib.

Спасибо еще раз!

person user2096176    schedule 28.01.2014