これはここに2番目の投稿であり、勉強を妨げる大きな問題があるので、できるだけ早く修正する必要があります!
私のgccはうまく動作しています。 FairThreads(C言語)で作業する必要があります。次のアーカイブをダウンロードしました。
ご覧のとおり、/srcにmakeFileがあり、2行目を置き換えました。
LIB_DIR = ../lib
渡す
LIB_DIR = /usr/bin/ld
"make"コマンドでmakeFileをコンパイルしました。
これで、c/c++ プログラムをコンパイルできなくなりました。でもHello Worldプログラムも。
コンパイルしようとするたびに、端末に次のエラーメッセージが表示されます。
/usr/bin/ld: 2: /usr/bin/ld: Syntax error: newline unexpected
collect2: error: ld returned 2 exit status
このソリューションをオンラインで見つけましたが、私には効果がありません。
sudo apt-get autoremove binutils
sudo apt-get install binutils
また、実行時にgccを再インストールしてみました。
sudo apt-get purge gcc
私は持っています:
Des erreurs ont été rencontrées pendant l'exécution :
linux-firmware
linux-image-generic-hwe-18.04
linux-generic-hwe-18.04
E: Sub-process /usr/bin/dpkg returned an error code (1)
しかし、gcc --versionを試すと見つからないというメッセージが表示されます。
したがって、再インストールするためにコマンドを実行すると、次のようになります。
sudo apt-get install gcc
私はまた次を得ます:
Des erreurs ont été rencontrées pendant l'exécution :
linux-firmware
linux-image-generic-hwe-18.04
linux-generic-hwe-18.04
linux-image-5.4.0-72-generic
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
しかし、gcc --versionはそれがインストールされたことを伝えます。
最後にプログラムをコンパイルしようとすると、次の結果が表示されます。
/usr/bin/ld: 2: /usr/bin/ld: Syntax error: newline unexpected
collect2: error: ld returned 2 exit status
うまく説明すれば解決策が得られることを願っています。
編集1:
以下を実行してbin / ldを削除しようとすると:
sudo rm -fr /usr/bin/ld;sudo apt-get install --reinstall binutils
私は持っています:
Des erreurs ont été rencontrées pendant l'exécution :
linux-firmware
linux-image-generic-hwe-18.04
linux-generic-hwe-18.04
linux-image-5.4.0-72-generic
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
そして、この特定のエラーメッセージは次のとおりです。
WARNING: no ldd around - install libc-bin
編集する:
次のコマンドでlddをインストールしました。
sudo apt-get install libc-bin
まだ変化はありません...
答え1
バイナリを上書きしました/usr/bin/ld
(そうは言っていませんが、make
rootとして実行しているとします)。
/usr/bin/ld
通常のビルド環境を使用するには、アンインストールして再インストールする必要があります。
Debian派生バージョンを使用している場合は、sudo rm -rf /usr/bin/ld;sudo apt-get install --reinstall binutils
これを行う必要があります。