多目录工程的CmakeLists.txt编写(自动添加多目录下的文件)

实现类似于vs中工程的CMakeLists.txt的编写。功能为main.cpp调用hello.cpp 的hello()函数,world.cpp的world()函数。使用自动添加多目录下的文件,用add_library方式形成library添加进工程中,适合ubuntu环境下的cmake编译方式。

转发自:https://blog.csdn.net/ktigerhero3/article/details/70313350

1.工程目录

主文件夹helloworld下有两个文件夹,分别是hello和world,另外主文件夹下还有main.cpp文件,截图如下:

这里写图片描述

2.主函数main.cpp

#include <stdio.h>
#include "hello.h"
#include "world.h"
int main()
{
    hello();
    world();
    return 0;
}

3.顶层CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(helloworld)

# Add the source in project root directory
#aux_source_directory(. DIRSRCS)#包含主文件夹下的main.cpp文件
# Add header file include directories
include_directories(./ ./hello ./world)#添加多目录的路径
# Add block directories
add_subdirectory(hello)#添加hello文件夹中的hello库
add_subdirectory(world)#添加world文件夹中的world库
# Target
#add_executable(helloworld ${DIRSRCS})#将主文件夹下的main.cpp文件(此处只有一个CPP文件,多个CPP也是可以的)编译形成工程的可执行文件helloworld.o
add_executable(helloworld main.cpp)#上述方法有问题,这种方法才有效
target_link_libraries(helloworld hello world)#将多目录下的hello库和world库链接上可执行文件helloworld.o

4.hello文件夹

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
aux_source_directory(. DIR_HELLO_SRCS)
add_library(hello ${DIR_HELLO_SRCS})

hello.cpp

#include "hello.h"
void hello()
{
    printf("hello\n");
}

hello.h

#ifndef HELLO_H
#define HELLO_H
#include <stdio.h>
void hello();
#endif

5.world文件夹

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
aux_source_directory(. DIR_WORLD_SRCS)
add_library(world ${DIR_WORLD_SRCS})

world.cpp

#include "world.h"
void world()
{
    printf("world\n");
}

world.h

#ifndef WORLD_H
#define WORLD_H
#include <stdio.h>
void world();
#endif
### 回答1: CMake是一个开源的跨平台构建工具,它可以用来管理C++项目的编译过程,能够生成Makefile、Visual Studio工程等多种构建描述文件,并且支持多种不同的操作系统和编译器环境。 CMake最新版本为3.23.1,该版本在Windows下的使用方法与其他操作系统并无太大差异。使用CMake的过程中,首先需要在CMake的官方网站上下载相应的安装包,然后进行安装。安装完成之后,打开命令行或者终端,进入项目所在目录,执行以下命令: cmake . 该命令会自动查找CMakeLists.txt文件,并根据文件中的指令生成相应的Makefile或Visual Studio工程。在生成的工程中,可以进行编译、链接等操作,最终生成可执行文件或者库文件等目标文件。 除此之外,CMake还支持很多高级功能,比如设置编译选项、添加自定义模块、打包发布等,可以根据实际需要进行使用和配置。总之,CMake是一个非常强大和优秀的构建工具,适用于各种不同类型的C++项目。 ### 回答2: CMake是一个跨平台的Make工具,在Windows系统下,CMake可以通过官网下载最新版的安装包进行安装,当前最新稳定版本为CMake 3.23.1。安装时需要注意选择合适的版本,32位或64位根据自己的操作系统来选择。 安装完成后,在命令行输入cmake --version,可以查看到CMake的版本信息,确保安装成功。CMake支持的语言包括C、C++、Java、Python等,需要根据所需项目的语言进行相应的配置。 CMake使用的基本流程为创建一个项目文件夹,在其中添加CMakeLists.txt文件进行项目配置。在CMakeLists.txt文件中,需要指定项目名称、版本号、需要编译的源文件编译器选项等。编写完成CMakeLists.txt后,在项目文件夹中创建一个build文件夹,进入build文件夹执行cmake ..命令,即可开始编译项目。 在CMake中,还可以进行交叉编译、生成不同类型的工程文件、配置编译选项等。CMake的强大之处在于其跨平台性和高度可定制性,适合用于各类复杂项目的构建和管理。 ### 回答3: CMake是一个跨平台的构建工具,可以自动生成Makefile或其他构建工具所需要的文件。它的运行环境包括各种不同的操作系统和编译器。 Windows下的CMake3.23.1是CMake的最新版本,它增加了许多新特性和改进,提高了CMake的性能和易用性。 其中包括: 1.新增对最新的C++标准的支持:CMake3.23.1增加了对C++20的支持,这样可以使用最新的语言特性和标准库。 2.优化生成代码的速度:增加了多种技术来加速代码生成过程,从而缩短了构建时间。 3.增加了新的命令支持:CMake3.23.1增加了许多新的命令和选项,使得配置和构建更加灵活。 4.增强了Windows下的构建支持:CMake3.23.1为Windows增加了更多的构建选项和特性,使得开发者在Windows下构建应用更加容易和快捷。 总的来说,CMake3.23.1为Windows下的开发者提供了更强大、更快速、更灵活的构建工具,方便他们快速构建自己的应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值