我正在尝试编写一个简单的 ANSI C 脚本,该脚本使用 cURL 进行一些 REST 调用,然后使用Jsmn解析 JSON 响应主体。我已经完成了所有 cURL 部分的工作,但我不知道如何将事情与 jsmn 正确连接起来。因此,首先,我一直在尝试构建他们的示例。
例如,在克隆 repo 之后,有一个 examples/ 目录,其中包含一个名为 simple.c 的文件。我试图用这个命令来构建它:
$ gcc -o simple simple.c
但这导致了一个看起来像这样的错误响应:
/tmp/ccGbLj94.o: In function `main':
simple.c:(.text+0xc8): undefined reference to `jsmn_init'
simple.c:(.text+0x10c): undefined reference to `jsmn_parse'
collect2: error: ld returned 1 exit status
我承认我对在 ANSI C 和所有 Linux 中做任何事情都很陌生。我相信我必须告诉gcc
链接源,但我不确定如何正确地做到这一点。
只是为了让你知道我到目前为止所做的尝试,在make
按照自述文件的指示运行后,我将生成的 jsmn.o 和 libjsmn.a 文件复制到 /usr/local/lib,并在 jsmn.o 上 chmod'ed 0755文件。然后我通过发出以下命令再次尝试:
$ gcc -ljsmn -o simple simple.c
但不幸的是,它仍然有完全相同的错误输出。