似たような話題がありますが、私はそれらの答えを見つけることができませんでした。g ++ ld共有ライブラリのエラー:code:blocks
私はcode :: blocks IDEを使用してテストコンソールアプリケーションを構築しています。 HD Homerun DVBチューナー用のlibhdhomerun.so(Silicon Dust製)というDVB共有ライブラリーをロードする必要があります。 ./configure、...、sudo make install、ldconfigなどを使用してHDHRチューナーライブラリーをインストールしており、それらはすべてユーティリティー(同時にビルド)で動作します。だから、図書館はそこにあり、OKです。
ライブラリは/ usr/local/libにインストールされています。実際には他の共有ライブラリと同じようにシンボリックリンクはありませんが、最後にバージョン情報もありません。私は(明示的/usr/local/lib/libhdhomerun.so含めた)コードをビルドする
、LDステージは
"cannot find -lhdhomerun.so"
で失敗のI /(は/ usr/localなどのあらゆる組み合わせを試してみましたlib /)libhdhomerun.so、hdhomerun.so、libhdhomerun、hdhomerun、それへのシンボリックリンクを作成するなど何も違いはありません。
奇妙なことは、まったく同じ方法でudev、mysql、libdvbv5の共有ライブラリを持っていることです。リンクしない唯一のものはhdhomerunです。
"ld -lhdhomerun.so --verbose"というコマンドラインから手作業で冗長リンクを実行すると、libhdhomerun.so.soが見つかるため、失敗します。
感謝の意を表す提案はありますが、私はcode :: blocksを使い続ける必要があります。
'lib'なしで、拡張子なしで、例えば'-lhdhomerun'です。 「通常の」ライブラリではなく、「通常の」ライブラリの場所にプラグインを示すことの多いバージョンはありません。 –