私は静的ライブラリをコンパイルするためにcode :: blocksを使用します。出力結果はlibstatic.aファイルです。 コンパイルされた関数を使用するためにライブラリにリンクするにはどうすればよいですか?Cで静的ライブラリにリンクする方法は?
(私はの#include「libstatic.a」を使用しようとしたが、私のプロジェクトはコンパイルされません)
私は静的ライブラリをコンパイルするためにcode :: blocksを使用します。出力結果はlibstatic.aファイルです。 コンパイルされた関数を使用するためにライブラリにリンクするにはどうすればよいですか?Cで静的ライブラリにリンクする方法は?
(私はの#include「libstatic.a」を使用しようとしたが、私のプロジェクトはコンパイルされません)
cc -o yourprog yourprog.c -lstatic
または
cc -o yourprog yourprog.c libstatic.a
あなたがすべき#include "libstatic.h"
、すなわち、あなたのコード内で適切なヘッダファイルを使用する(あなたのコードは「doesnの理由だことtコンパイル)、入力ライブラリの1つとしてリンカーオプションにlibstatic.a
へのパスを含めます。
このwebpageには、静的ライブラリへのリンクに関するいくつかの例があります。
gcc -I. -o jvct jvct.c libjvc.a
を使用し、純粋に静的にリンクするにはあなたに感謝。最終的に私はそれをcodeblocksでやってしまいました。#include .hファイルは.aファイルと同じ名前である必要はありません。 – root
私は私のメイクファイルにライブラリパスを設定する必要がありました。このような場合のためには使用できます。
gcc -o myapp main.c -L. -lstatic
gcc -I. -o jvct jvct.c libjvc.a
を-static
cc -static yourprogram.c libstatic.a
これにより、コンパイラはlibcを含む_all_ライブラリに静的にリンクし、静的にリンクされたバイナリを生成することに注意してください。それはあなたが望むもの(またはそうでないもの)かもしれません。 – WGH
私は2番目を試してみました。ありがとう。私もコード::ブロックが動作するように設定することができます。 :-) – root