2

プログラムをコンパイルしようとしていますが、次のメッセージが表示されてリンクが失敗します。

gcc -O2 -pipe -Wl,--export-dynamic tkAppInit.o -L/home/dimitriv/ns-allinone-2.35/tk8.5.10/unix -ltk8.5 \
-L/home/dimitriv/ns-allinone- 2.35/tcl8.5.10/unix -ltcl8.5 -lX11 -ldl -lieee -lm -Wl,-rpath,/home/dimitriv/ns-allinone-2.35/lib -o wish /usr/bin/ld:見つかりません - lX11
collect2: エラー: ld が 1 つの終了ステータスを返しました

ただし、my$LD_LIBRARY_PATHには X11 がインストールされているディレクトリが含まれています。

echo $LD_LIBRARY_PATH
/share/apps/cim/lib:/opt/ns2/otcl-1.13:/opt/ns2/lib: /home/dimitriv/local/lib :

ライブラリは正しくインストールされているようです。

ls /home/dimitriv/local/lib | grep X11
libX11.a
libX11.la
libX11.so
libX11.so.6
libX11.so.6.3.0
libX11-xcb.a
libX11-xcb.la
libX11-xcb.so
libX11-xcb.so.1
libX11-xcb.so .1.0.0
X11

ライブラリを見つけてリンクを作成できないのはなぜですか?

4

3 に答える 3

4

には、ローダー (プログラム) がプログラムを実行するためにLD_LIBRARY_PATH使用する共有ライブラリへのパスが含まれています。ld

コンパイル時には、インクルード ディレクトリが使用されます。リンク時には、オブジェクト ライブラリが必要です。最後のものはあなたが見逃している種類です。

X11 開発ライブラリを取得するには、パッケージをインストールする必要がある場合があります。Linux では、パッケージは と呼ばれlibX11-develます。インストールするには、

sudo yum install libX11-devel             # for Redhat, Fedora, etc.

また

sudo apt-get install libX11-devel         # for Ubuntu, etc.
于 2012-12-21T08:35:04.497 に答える
1

コンパイルコマンド自体でわかるように:

gcc -O2 -pipe -Wl,--export-dynamic tkAppInit.o -L/home/dimitriv/ns-allinone-2.35/tk8.5.10/unix -ltk8.5 \ 
-L/home/dimitriv/ns-allinone-2.35/tcl8.5.10/unix -ltcl8.5 -lX11 -ldl -lieee -lm -Wl,-rpath,/home/dimitriv/ns-allinone-2.35/lib -o wish

パス

-L/home/dimitriv/local/lib

は追加されていません。make ファイルに追加して確認してください。

于 2012-12-21T08:32:24.963 に答える