13

libmなどのライブラリをldにリンクするときは、libプレフィックスを削除する必要があります。ファイルがこの命名規則に従わない場合はどうなりますか?ファイルの名前を変更する以外にリンクする方法はありますか?

4

2 に答える 2

23

リンカに、libプレフィックスなしで名前が付けられたライブラリを検索させることができます。

gcc main.o -L/path/to/foo -l:foo.a

これは、ライブラリのリストが指定され、後で-lフラグが付加される環境で特に役立ちます(たとえば、一部のmakefileまたはeclipse CDT)

于 2014-09-18T13:00:00.913 に答える
14

foo.aリンク行でライブラリへのフルパスを指定するなどして、任意のライブラリに対してリンクできます。

gcc main.o /path/to/foo.a

非標準のライブラリ名で失われるのは、リンカがそれを検索する機能です。たとえば、これは機能しません。

gcc main.o -L/path/to foo.a

-l:foo.a構文を使用すると、検索の不足を回避できます。

gcc main.o -L/path/one -L/path/two -l:foo.a

libmなどのライブラリをldにリンクすると

一般に、。とは何もリンクしないldでください。代わりにコンパイラドライバを使用してください。正しい結果を得るために必要なオブジェクトとライブラリがリンクラインに追加されます。

于 2012-04-21T14:33:02.157 に答える