2016-05-21 12 views
0

私はC言語を新しくしました。this json de/serializerを試してみたいと思います。依存関係を必要としないので、私のプロジェクトのサブディレクトリにコードを挿入しました。 json_test.cCがlibに失敗しました

/ 
    json_test.c 
    json/ 
     json.c 
     json.h 

出典:

#include "json/json.h" 
int main() { 
    JsonNode *json = json_mkobject(); 
} 

そしてjson/json.hの一部:

JsonNode *json_mkobject(void); 

問題はコンパイルが失敗するので、私はLIBから任意の関数を使用することができないということです(私はそれがリンカだと思う):

$ gcc json_test.c -o json_test 
/tmp/cco4ZDh0.o: in function « main »: 
json_test.c:(.text+0x9): undefined reference to « json_mkobject » 
collect2: error: ld returned 1 exit status 

私は昨日からそれを利用しています。それを機能させるための提案はありますか?

+0

ヘッダファイルをのみ、通常の関数は宣言マクロ、および構造体の定義の形で*、シンボリック定数*含まれています。ヘッダーファイルをインクルードすると自動的にライブラリにリンクされたり、コンパイラのフロントエンドプログラムが同様の名前のソースファイルでビルドされたりすることはありません。 –

答えて

2

あなたにもjson/json.cをコンパイルする必要があります。

gcc json/json.c json_test.c -I json -o json_test 
+0

明らかに...ありがとう –

+1

@JulienCastiauxこの回答があなたの問題を解決した場合、あなたは同様の問題を抱える他の人が恩恵を受けることができるように答えとして受け入れることもできます。 –

関連する問題