私はubuntuを使用しており、gccとg ++は正常に機能していましたが、今日は次のように表示されました。
cannot find -lm
cannot find -lc
検索したところ、/usr/bin/ld
と関係があることがわかりました。これはlbd.bdf
へのシンボリックリンク(私は願っています)です。そのファイルを友達のPCのubuntuのディレクトリに貼り付けました。それはうまくいきませんでした。
-lc
は静的ライブラリlibc.aを含めることを意味することがわかりました。
同様に-lm
i386-linux-folders
で見つけました(名前が違う)。
コードブロックを試しましたが、同じエラーが発生しました。
libpath(g ++)がlibm.aとlibc.aが配置されているディレクトリを指していることを確認してください(-Lオプションを使用)
コンパイラが静的glibcを見つけることができません。共有ライブラリのみをインストールした可能性があります
試してみてください
yum install glibc-static
ld
はGNUリンカーです。
man ld
ldは、多数のオブジェクトファイルとアーカイブファイルを組み合わせ、それらのデータを再配置し、シンボル参照を拘束します。通常、プログラムをコンパイルする最後のステップは、ldを実行することです。
これは、プログラムをCライブラリおよびC数学ライブラリにリンクするために使用されます。 libc6-dev
がインストールされています:
foo@bar: $ dpkg -s libc6-dev
または、より一般的な場合は、build-essential
、これは少数の重要なCパッケージに依存します。
foo@bar: $ dpkg -s build-essential