近期工作要求操作数据库并转换Json格式计算Mac值,因为所给的接口库为so库,所以要在Linux系统下编写主程序。
之前已经在工作中接触了Windows系统下的C++操作数据库、Json.cpp调用和链接动态库,这次在Linux下重新编译需要一些改动。
Linux系统C++链接动态库
在Linux系统中,如果没有安装带UI的编译工具软件的话就无法像在Windows下一样直接在项目属性页中添加依赖库和附加依赖目录,需要使用g++编译器在命令行中进行链接,具体步骤为在g++编译项中添加 -l 库指令和 -L 库路径指令。
编译时的指令为:
g++ 工程路径/xxx.cpp -o test(应用程序名) -l库名称 -L LD_LIBRARY_PATH
在Linux中动态库路径的设置有好几种方法,其中我了解到的有两种:添加到默认lib文件夹和export动态库路径。
第一中是将需要链接的so库加入Linux下的 /usr/lib/ 或 /usr/lib/bin/ 文件夹中,这是Linux下编译器的默认库路径,编译时可直接链接到动态库,缺点是会使系统文件夹变大变乱。
第二种是在代码编译过程中导出一个设定好的动态库路径,具体操作为:
1.将要链接的so库加入选择好的路径中
2.在命令行中设置LD_LIBRARY_PATH,额外的动态库路径:
expor