GNU/Linux >> Linux の 問題 >  >> Linux

Gcc コンパイルはオブジェクト ファイルのサフィックスを計算できません:コンパイルできません

この問題は、テスト プログラムが libmpc/libmpfr/libgmp にリンクしようとしたときに、動的リンク ライブラリ パスの問題が原因で発生します。

ld を許可するために環境変数の下に追加します 正しい so に対するリンク ファイル:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/mpc/lib/

その後、gcc のビルドを再試行してください。


「GCC のビルドは些細なことではありませんが、指示に注意深く従えば難しくありません。多くの人が、インストール ドキュメントを適切に読まずに急いでビルドしようとし、次のよくある間違いを 1 つ以上犯します:

<オール>
  • ./configure を gcc src dir から実行しないでください (これはサポートされていません) => configure を gcc ソース ディレクトリの外から実行する必要があります

  • 注:GCC が必須ライブラリ (GMP/MPFR/MPC) に動的にリンクする場合、共有ライブラリは、gcc をビルドするときと、インストールされたコンパイラを使用するときの両方で、動的リンカーのパス (LD_LIBRARY_PATH) にある必要があります。"

  • 簡単な例 (GMP/MPFR/MPC への動的リンクなし):

    tar xzf gcc-4.8.0.tar.gz
    cd gcc-4.8.0
    ./contrib/download_prerequisites
    cd ..
    mkdir objdir
    cd objdir
    $PWD/../gcc-4.8.0/configure --prefix=/opt/gcc-4.8.0 
    make
    make install
    

    出典:Advogato Doc -GNU Doc


    Linux
    1. Linux – Linuxのオブジェクトファイルのフォーマットは異なりますか?

    2. オブジェクト ファイルをコピーおよび変換するための Linux Objcopy コマンドの例

    3. nm :オブジェクト ファイル内のシンボルを一覧表示するコマンド。

    1. シンボリック リンク:このファイルにリンクしているすべてのファイルを検索します

    2. libaio.so.1:共有オブジェクト ファイルを開けません

    3. 「gcloud compute copy-files」:ファイルのコピー時に権限が拒否されました

    1. libpulse.so.0:共有オブジェクト ファイルを開けません:そのようなファイルまたはディレクトリはありません

    2. Linux で Windows Visual C++ コードをコンパイルする方法

    3. エラー:ld.so:LD_PRELOAD からのオブジェクト 'libgtk3-nocsd.so.0' をプリロードできません