msgpack-c编写的程序编译报错的解决办法

背景:

msgpack像JSON一样,跨平台、跨操作系统、在多种语言之间使用,高效压缩

msgpack——It's like JSON,but fast and small.

msgpack会将数据打包成二进制的数据,它的数据格式与json类似,但是在存储时对数字、多字节字符、数组等都做了很多优化,减少了无用的字符,二进制格式,也保证不用字符化带来额外的存储空间的增加,所以在很大程度上减少来传输数据的大小。
如果说把json数据的大小比作西瓜大小,那么protobuf就是苹果大小,msgpack呢,则是红豆大小,所以msgpack使用优势还是很明显的!

 

msgpack官网:https://msgpack.org/

使用msgpack-c编写一个程序:

编写完之后使用gcc编译的时候报错

gcc cJSON.c main.c -o main.o -lm

 

 

 

 后来上网查找:

gcc cJSON.c main.c -o main.o -lm -lmsgpack

 

 

 

 网上说搜索下有没有libmsgpack.so这个文件

find / -name libmsgpack.so  找不到

后来试了下模糊搜索:find / -name *libmsgpack*,结果搜到了,是libmsgpackc.so文件

 

 

然后运行:gcc cJSON.c main.c -o main.o -lmsgpackc -lm  没有报错

最后运行编译好的文件又报错:error while loading shared libraries: libmsgpackc.so.2: cannot open shared object file: No such file or directory

 

 然后又上网查了下,

先运行   echo $LD_LIBRARY_PATH如果没有任何显示就运行下面的命令:

 LD_LIBRARY_PATH=/usr/local/lib

export LD_LIBRARY_PATH

最后运行 ./main.o发现成功了

 

posted on 2021-10-21 15:02  朱古力88  阅读(581)  评论(0编辑  收藏  举报