Clion下c++ library开发CMake使用指引

正常的c++可执行程序,都是一个CMakelists.txt就可以搞定的,而且clion默认就可以run + debug, 但是当我们要开发一个library时,就需要对这个library进行使用测试,默认的library不是executable,无法直接在clion中run或者debug的。

本文涵盖的另外一个点就是:Clion下一个project如何跑多个可执行文件

1、首先我们通过Clion新建一个C++ library项目, 此时ide会自动创建根目录下的CMakelists.txt文件,此时我们看简单分析下CMakeLists.txt文件

cmake_minimum_required(VERSION 3.17)
project(hello)

set(CMAKE_CXX_STANDARD 14)

add_library(hello library.cpp library.h)

add_subdirectory(examples)

此处定义了项目project名hello, 和executable项目不同的是,没有add_executable(...) ,也就是说改项目目前无法直接run或者debug,当我们把这个lirary的功能开发完成之后,肯定需要进行测试的,笔者这边使用Cmake的add_subdirectory命令,将library的使用用例放到一个独立的文件夹中, 笔者这边命名为examples。下面是笔者的项目目录:

2、当我们指定了库的用例代码文件夹之后,就在examples文件夹中新建一个CMakeLists.txt文件,内容如下

# 此处指定可执行文件的名称,这个可执行程序program就是用来测试library的用例
add_executable(program program.cpp)

# 引用自己开发的library,第三方库,共享库,静态库等
target_include_directories(program PRIVATE .. ../)  # target_include_directories:给目标指定头文件包含路径
target_link_libraries(program hello) # target_link_libraries:给目标指定链接的第三方库的路径位置

# 切记!!不要再添加project(program), 这个对ide来说一个项目一个即可, ide也只会认一个, 否则整个项目名称都变了。

此时同步要做的是,在examples下新建一个cpp文件program.cpp 里面的main函数直接调用library的库代码进行测试

#include <iostream>
#include "library.h"

int main(int argc, char *argv[]) {
    std::cout << "开始执行....\n";
    hello();
    return 0;
}

3、当以上都设置好了之后,右键根目录的CMakeLists.txt,选择Reload Cmake Project。此时就可以直接run或者debug program这个Target

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页