/usr/bin/ld: не удается найти

Я создал файл .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

Ответы

Ответ 1

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

not -libcalc.so 

У меня есть аналогичная проблема с автогенерированными make.

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

cd /compile/directory

ln -s  /path/to/libcalc.so libcalc.so