0

我正在尝试编写一个简单的 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

但不幸的是,它仍然有完全相同的错误输出。

4

1 回答 1

0

添加-ljsmn到您的命令行 - 确保您ld_library_path指向包含您的库的目录(man gcc, man ld是您的朋友)

于 2017-02-23T21:34:34.217 回答