Заставить gcc использовать один компоновщик над другим - PullRequest
1 голос
/ 22 августа 2010

В последнее время я работал над OS X. Некоторое время дела шли довольно хорошо, пока каким-то образом ld не вошел в мою систему, и теперь gcc не будет использовать dyld. Кроме того, все мои совместно используемые библиотеки находятся в *.dylib формат, и ЛД, stubornly игнорирование там существования. Если я mv ld из PATH, gcc просто жалуется, что не может найти ld.

Пожалуйста, помогите мне вернуть gcc в нужное русло и использовать то, что он должен.

Ответы [ 4 ]

1 голос
/ 22 августа 2010

Поможет ли символическая ссылка ld на dyld?

mv /usr/bin/ld /usr/bin/ld.old
ln -s /usr/bin/dyld /usr/bin/ld

Редактировать: исправлен порядок параметров ld

1 голос
/ 22 августа 2010

Вы можете попробовать некоторые опции gcc.Со страницы man :

-c  Compile or assemble the source files, but do not link.  The linking
    stage simply is not done.  The ultimate output is in the form of an
    object file for each source file.

Вы можете затем явно ссылаться, используя любой компоновщик, который вы хотите.

0 голосов
/ 24 сентября 2013

Это не ваш точный вопрос, но мне нужно было перейти на ld.gold, и для этого опция -fuse-ld=gold для gcc была очень полезна.

0 голосов
/ 04 августа 2011

посмотрите на -Xlinker вариант

Я получил это от man gcc

Вы можете дважды проверить, используя некоторые подробные параметры, такие как -v

...