Что может вызвать «не удается связать с основным исполняемым файлом» в общей библиотеке? - PullRequest
1 голос
/ 17 ноября 2010

При попытке связать предварительно скомпилированную библиотеку с основным файлом при компиляции я получаю сообщение «не могу связать с основным исполняемым файлом».и присутствуют в том же каталоге.

Может кто-нибудь дать мне подсказку, что может вызвать эту ошибку?

Спасибо

PS: OSX 10.6.4 с g ++ - 4.2.1

Ответы [ 3 ]

1 голос
/ 18 ноября 2010

FYI:

При использовании -dynamiclib с ключом-компилятором и вышеупомянутой ошибке попробуйте скомпилировать с -dynamiclib -undefined dynamic_lookup.

Для меня это сработало.:)

0 голосов
/ 17 ноября 2010

Я немного повозился и, по-видимому, исправил это ...

Перед тем, как скомпилировать общую библиотеку с помощью

g++ -o libmultiply.dylib libmultiply.cc -dynamiclib

и получил упомянутую ошибкуТеперь я перекомпилировал библиотеку снова, с

g++ -o libmultiply.dylib libmultiply.cc -dynamiclib -undefined dynamic_lookup

, и теперь она работает.(По крайней мере, компиляция и компоновка.) Но мне все еще нужно проверить, действительно ли библиотека выполняет то, для чего она предназначена.;)

До сих пор я не знаю, почему ссылки теперь не сообщают об ошибке, но, возможно, кто-то еще может пролить свет на это с помощью этой информации.=)

только мои 2 кт.

0 голосов
/ 17 ноября 2010

Похоже, что у кого-то была похожая проблема: ld не может связаться с основным исполняемым файлом

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