/ usr / bin / ld: не могу найти - PullRequest
18 голосов
/ 16 марта 2011

Я создал файл .so и поместил его в папку /opt/lib и добавил этот путь к LD_LIBRARY_PATH теперь после этого, когда я пытаюсь скомпилировать основную программу с помощью следующей команды:

g++ -Wall -I/home/alwin/Development/Calculator/ main.cpp -lcalc -o calculator

Я получаю следующую ошибку:

/usr/bin/ld: cannot find -lcalc
collect2: ld returned 1 exit status

Может кто-нибудь помочь мне с этим.Я создал общую библиотеку, используя блоки кода IDE

Ответы [ 4 ]

22 голосов
/ 16 марта 2011

Добавьте -L/opt/lib к параметрам вашего компилятора, это заставит компилятор и компоновщик искать этот путь для libcalc.so в этой папке.

3 голосов
/ 02 июля 2013

Когда вы делаете вызов gcc, он должен сказать:

g++ -Wall -I/home/alwin/Development/Calculator/ -L/opt/lib main.cpp -lcalc -o calculator

not -libcalc.so 

У меня похожая проблема с автоматически генерируемыми марками.

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

cd /compile/directory

ln -s  /path/to/libcalc.so libcalc.so
2 голосов
/ 29 октября 2012

@ Alwin Doss Вы должны указать опцию -L перед -l.Вы бы сделали наоборот, наверное.Попробуйте это:)

2 голосов
/ 16 марта 2011

Вам нужно добавить -L/opt/lib, чтобы указать ld искать там общие объекты.

...