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发现成功了