2016-06-22 10 views
0

gccを使用してCプロジェクトをコンパイルしようとしています。すべてのソースファイルと.aライブラリファイルは同じフォルダにです。どうすればプロジェクトを正常にコンパイルできますか?gcc:ソースファイルと同じフォルダにライブラリをリンク

enter image description here

私が試してみた:

gcc -o test main.c IPT.c logitem_list.c -L -./ -libpt 

をしかし、私はエラーをreceieve:

/usr/bin/ld: cannot find -libpt 
collect2: error: ld returned 1 exit status 
+4

[正しいオプション](https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Link-Options.html#Link-Options)は '-lpt'です(' -libpt'ではなく)。 ) – pmg

+0

@pmg正しいですか。 –

答えて

4

あなたは-l-Lにディレクトリと 'コア' の名前を指定します。

gcc -o test main.c IPT.c logitem_list.c -L . -lpt 
ptを与えられたとき

、リンカはlibpt.aまたはlibpt.soまたは同等物(他のプラットフォーム上.dylibまたは.slまたは.dllまたは.libなどの拡張子)を探します。

-L -./は、リンカが 'ダッシュドット'と呼ばれるディレクトリ内に存在する可能性があり、とにかくlibpt.aが見つからないことを示しています。

+0

これはうまくいきました。 –

0

静的なライブラリなので、コマンドラインで直接指定することもできます。静的ライブラリは単にオブジェクトファイルのインデックス付けされたアーカイブであることを忘れないでください:あなたはまた、共有ライブラリでこれを行うことができますが、あなたはおそらくいけない

gcc -o test main.c IPT.c logitem_list.c ./libpt.a 

関連する問題