2016-08-28 3 views
-1

にリンクすれば、いくつかの.soにリンクしたプロセス(pro)を作成します。いくつかのマシンでは、非常にうまく動作します。 1台のマシンでは実行できません。私はlddを使ってプロセスを確認します。 lddプロ それは多くの冗長な.soにリンクしています。冗長な.soは他のプログラマによって書かれています。なぜlinux(kylin)の冗長ダイナミックライブラリ

私はシステム変数LD_LIBRARY_PATHを設定します。必要なものが含まれているパスだけが含まれていることを確認してください。コンパイルできません。(他のマシンでも試してみると、コンパイルはOKです。)

なぜ私のコードが他のプログラマーのコードと混ざっているのか、本当に混乱しています。

私は初めて質問をしています。質問を閲覧した皆さん、ありがとうございます。

+1

「他のプログラマーのコード」とはどういう意味ですか?あなたが使っている図書館は、自分で書いたのですか?ライブラリが依存しているライブラリはどうですか?等々? Linuxカーネルとユーザー空間を自分で書いていましたか?あなたが実行するコードの量は、あなたのシステム上で実行されているすべてのコードのうち、特定の瞬間に占める割合のごく一部です。 –

+0

"他のプログラマーのコード"とは、システムコードではないことを意味します。私のプロセスが必要とするダイナミックライブラリの一部は私によって書かれており、一部はオープンダイナミックライブラリです。 – user6767180

答えて

0

今日、私はこの問題を解決しました。

最初に、私は "helloworld"プログラムを書いた、それはまだ他のダイナミックライブラリにリンクしていました。 「xxx.soが見つかりません。/usr/lib64/crti.oが必要です」

次に、私はファイル 'crti.o'をチェックします。これは他のプログラマによって実際に変更されています。非常に多くのダイナミックライブラリをリンクしていました。

このファイルを他のマシンに置き換えても、すべて正常に動作します。