web-dev-qa-db-ja.com

Cの静的ライブラリにリンクする方法は?

Code :: blocksを使用して静的ライブラリをコンパイルします。出力結果はlibstatic.aファイルです。今、コンパイルされた関数を使用するためにライブラリにリンクするにはどうすればよいですか?

(#include "libstatic.a"を使用しようとしましたが、私のプロジェクトはコンパイルされません)

28
user188276
cc -o yourprog yourprog.c -lstatic

または

cc -o yourprog yourprog.c libstatic.a
45
dajobe

あなたがすべき #include "libstatic.h"、つまり、コード内で適切なヘッダーファイルを使用し(thatsコードがコンパイルされない理由)、libstatic.aは、入力ライブラリの1つとしてリンカーオプションで指定します。

この webpage には、静的ライブラリへのリンクに関するいくつかの例があります。

gcc -I. -o jvct jvct.c libjvc.a
7
Jacob

メイクファイルでライブラリパスを設定する必要がありました。この場合、次を使用できます。

gcc -o myapp main.c -L. -lstatic
3
pseudomuto
gcc -I. -o jvct jvct.c libjvc.a
2
HMS

純粋に静的にリンクするには、-staticを使用します

cc -static yourprogram.c libstatic.a
0
msc