cmake链接动态库和静态库 - 交叉编译json-c

交叉编译json-c

  1. 下载json-c
git https://github.com/json-c/json-c.git
  1. 修改CMakeLists.txt文件
// 修改json-c目录下的CMakeLists.txt文件link_directories(/usr/local/arm_linux_4.8/lib)
target_link_libraries(${
    
    PROJECT_NAME} -lm)                                                               
cmake_minimum_required(VERSION 2.8)
   
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER "arm-linux-gcc")
SET(CMAKE_CXX_COMPILER "arm-linux-g++")

这里需要注意的是连接外部库的话要把连接命令写在最前面

  1. 创建build目录,并在build目录下执行cmake命令
cmake .. -DCMAKE_INSTALL_PREFIX=/home/guomq/work/power_gateway/bsp/json-c/__install

-DCMAKE_INSTALL_PREFIX : 指定安装目录

  1. 生成Makefile后执行make开始编译,下面是编译后生成的库文件
    在这里插入图片描述
  2. 执行make install安装

cmake链接外部动态库和静态库举例

// 链接动态库
target_link_libraries(${PROJECT_NAME} -lm)                                                               
cmake_minimum_required(VERSION 2.8)
// 链接静态库
add_library(libmy STATIC IMPORTED)
set_property(TARGET my PROPERTY IMPORTED_LOCATION /path/to/libmy.a)
target_link_libraries(project_name my) #添加libmy.a

猜你喜欢

转载自blog.csdn.net/gmq_syy/article/details/106555978