web-dev-qa-db-ja.com

/ 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を使用して共有ライブラリを作成しました

18
Alwin Doss

コンパイラパラメーターに-L/opt/libを追加します。これにより、コンパイラーとリンカーはそのフォルダー内でlibcalc.soのパスを検索します。

22

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
3
otter

@Alwin Doss -lの前に-Lオプションを指定する必要があります。おそらく他の方法でやり直したでしょう。これを試して :)

2
Sunil

-L/opt/libを追加して、ldに共有オブジェクトを探すように指示する必要があります。

2
geekosaur