Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jsmn构建C脚本?_C_Json_Gcc_Linker_Jsmn - Fatal编程技术网

如何使用jsmn构建C脚本?

如何使用jsmn构建C脚本?,c,json,gcc,linker,jsmn,C,Json,Gcc,Linker,Jsmn,我试图编写一个简单的ansic脚本,它使用cURL进行一些REST调用,然后使用cURL解析JSON响应体。我已经让所有的卷曲部分都工作了,但是我不知道如何将它们与jsmn正确地连接起来。因此,首先,我一直在尝试建立他们的例子 例如,在克隆repo之后,有一个examples/目录,其中有一个名为simple.c的文件。我试着用这个命令来构建它: $ gcc -o simple simple.c $ gcc -ljsmn -o simple simple.c 但这导致了一个类似以下内容的错误

我试图编写一个简单的ansic脚本,它使用cURL进行一些REST调用,然后使用cURL解析JSON响应体。我已经让所有的卷曲部分都工作了,但是我不知道如何将它们与jsmn正确地连接起来。因此,首先,我一直在尝试建立他们的例子

例如,在克隆repo之后,有一个examples/目录,其中有一个名为simple.c的文件。我试着用这个命令来构建它:

$ gcc -o simple simple.c
$ gcc -ljsmn -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
我承认我对用ANSIC做任何事情都是相当陌生的,而且所有的事情都是Linux的。我相信我必须告诉
gcc
链接到源代码中,但我不确定如何正确地做到这一点

正如您所知,在按照自述文件的指示运行
make
之后,我将生成的jsmn.o和libjsmn.a文件复制到/usr/local/lib,并将chmod'ed 0755复制到jsmn.o文件。然后,我再次发出以下命令:

$ gcc -o simple simple.c
$ gcc -ljsmn -o simple simple.c

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

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

没有可用的生成文件吗?有,但我是个新手,我真的不知道该怎么办。我很早就运行了
sudomake
,它生成了jsmn.o和libjsmn.a文件。命令行上的
-ljsmn
必须在
simple.c
之后,请阅读重复问题的解释。c不是脚本语言。对不起,我不会说青春期