C语言 Cmake 导入第三方库问题,CMake 调用第三方库的Makefile

黑牙菜菜 发布于 2016/05/15 02:18
阅读 847
收藏 0

我用建立了个C项目,目录结构如下所示,其中cJSON是第三方开源库。

怎样把cJSON的 make和make install 写进 CMakeLists.txt,main才能正常工作呢

starc@starc-VirtualBox:~/untitled$ tree .

├── cJSON
│   ├── cJSON.c
│   ├── cJSON.h
│   ├── cJSON_Utils.c
│   ├── cJSON_Utils.h
│   ├── LICENSE
│   ├── Makefile
│   ├── README
│   ├── README.md
│   ├── test.c
│   ├── tests
│   │   ├── test1
│   │   ├── test2
│   │   ├── test3
│   │   ├── test4
│   │   ├── test5
│   │   └── test6
│   └── test_utils.c
├── CMakeLists.txt
└── main.c

2 directories, 19 files



CMakeLists.txt和main.c的内容:

cJSON 可才这样获得:

git clone https://github.com/kbranigan/cJSON.git


starc@starc-VirtualBox:~/untitled$ cat CMakeLists.txt 

project(untitled)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
include(ExternalProject)
ExternalProject_Add(cJSON

        SOURCE_DIR ${PROJECT_SOURCE_DIR}/cJSON
        UPDATE_COMMAND ""
        BUILD_COMMAND make
        BUILD_IN_SOURCE 1
        INSTALL_COMMAND make install

)



starc@starc-VirtualBox:~/untitled$ cat main.c

#include <stdio.h>

#include "cJSON/cJSON.h"

int main(void)
{
 cJSON *root = cJSON_CreateObject();
 cJSON_AddStringToObject(root,"key","value");
 char* json=cJSON_Print(root);
 printf(json);


    return 0;
}






加载中
返回顶部
顶部