C 包含库失败

C include lib fail

我是 C 的新手,我想尝试 this json de/serializer。因为它不需要任何依赖,所以我只是将代码放在我项目的子目录中。

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

json_test.c 的来源:

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

json/json.h的一部分:

JsonNode *json_mkobject(void);

问题是我无法使用库中的任何函数,因为编译失败(我认为是链接器):

$ 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

我从昨天开始就在用它,你有什么建议让它发挥作用吗?

你也应该编译 json/json.c:

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