5

Linux マシン ( lubuntu 11.10 ) でクロス g++ を使用して詳細モードでコンパイルを実行すると、デフォルトのインクルード ヘッダー ディレクトリのリストが表示されます。

#include <...> search starts here:
/opt/eldk-4.2/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include
/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/powerpc-linux
/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/backward
/opt/eldk-4.2/usr/../ppc_4xx/usr/include

別の Linux マシン (lubuntu 12.10) でまったく同じ g++ バイナリを実行すると、要素の少ない別のリストが得られます。

#include <...> search starts here:
/opt/eldk-4.2/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include

そして、次のように、一部の要素が正しく構築されていないように見えます。

ignoring nonexistent directory "/opt/ppc_4xx/usr/lib/gcc/powerpc-linux/includ../include/c++/4.2.2"

その結果、一部のヘッダーが見つからないため、最初のシステムでコンパイルした一部のコードが 2 番目のシステムでコンパイルされません。

なぜこうなった?。このリストはどこから来たのですか?. 誰がそれを構築する責任がありますか?. 簡単に変更できますか?

どんな助けでも大歓迎です。

4

2 に答える 2

5

環境変数を設定することで、ディレクトリをデフォルトの検索パスに追加できます。

  • C_INCLUDE_PATH(C ヘッダー ファイルの場合)
  • CPLUS_INCLUDE_PATH(C++ ヘッダー ファイルの場合)。

または、specfile を作成および編集して、G++ が検索する場所に配置することもできます。でパスを確認できますstrace gcc

GCC ページの specfiles に関する追加ドキュメント。

于 2012-06-17T18:33:22.387 に答える
0

ELDK 4.2を使用すると、正確な問題が発生します。これは、アップグレード前に同じコンピューターでコンパイラーを正常に実行していたため、ubuntu 12.04 で変更されたものに関連している可能性が非常に高いです。

私の問題は、 /usr を忘れているように見えることです

存在しないディレクトリ「/opt/eldk-4.2/../ppc_82xx/usr/include」を無視します

そのはず

/opt/eldk-4.2/usr/../ppc_82xx/usr/include

これはubuntu 11.10で完全に機能します。

ISOからELDKをインストールすることと、ubuntu 11.10の動作中のバージョンからインストールをコピーすることの両方を試みました

于 2012-08-16T22:24:38.623 に答える