【CMake】第2篇 CMake构建.h与.cpp文件

这篇具有很好参考价值的文章主要介绍了【CMake】第2篇 CMake构建.h与.cpp文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、文件目录结构

add.h

 add.cpp

main.cpp

CMakeLists.txt

2、CMake构建项目

3、构建工程优化

使用 aux_source_directory(./src SRC_LIST)

 4、优化目录,生成可执行文件到bin下


1、文件目录结构

首先来看一下目前的目录结构:

【CMake】第2篇 CMake构建.h与.cpp文件

add.h

#ifndef ADD_H
#define ADD_H

int add(int numA, int numB);

#endif

 add.cpp

#include "add.h"

int add(int numA, int numB)
{
    return numA + numB;
}

main.cpp

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

int main()
{
   std::cout << "numA + numB = " << add(10,20) <<std::endl;
   return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(test)
include_directories(./include)
set(SRC_LIST ./src/add.cpp ./src/main.cpp)
add_executable(main ${SRC_LIST})
  •  cmake_minimum_required(VERSION 2.8)

指定cmake的最小版本。

  • project(test)

设置项目名称。

  • include_directories(./include)

用来包含头文件目录。

  • set(SRC_LIST ./src/add.cpp ./src/main.cpp)

用来定义变量,使用${}取出值。

2、CMake构建项目

 进入build目录:

cd build/

执行cmake ..

cmake ..

【CMake】第2篇 CMake构建.h与.cpp文件

执行make 

make

【CMake】第2篇 CMake构建.h与.cpp文件

 执行main文件

./main 

【CMake】第2篇 CMake构建.h与.cpp文件

3、构建工程优化

上述使用:

set(SRC_LIST ./src/add.cpp ./src/main.cpp)

用来指定源码位置,但是如果src文件夹下面有几千几百个源文件的话,难道要添加上百次???

适合源码文件比较少的情况下。

使用 aux_source_directory(./src SRC_LIST)

选择src文件夹下面的所有文件。

cmake_minimum_required(VERSION 2.8)
project(test)
include_directories(./include)
aux_source_directory(./src SRC_LIST)
add_executable(main ${SRC_LIST})

然后执行:

cd build
cmake ..
make
./main

结果展示:

【CMake】第2篇 CMake构建.h与.cpp文件

 4、优化目录,生成可执行文件到bin下

目录结构:

【CMake】第2篇 CMake构建.h与.cpp文件

 修改CMakeLists.txt文件:

cmake_minimum_required(VERSION 2.8)
project(test)
add_subdirectory(./src)

当cmake执行到第三行时,去src目录下找CMakeLists.txt文件。

cmake_minimum_required(VERSION 2.8)
project(test)
aux_source_directory(./ SRCLIST)
include_directories(../include) 
add_executable(main ${SRCLIST})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)

EXECUTABLE_OUTPUT_PATH:目标二进制可执行文件存放的位置
PROJECT_SOURCE_DIR:代表的工程的路径
PROJECT_BINARY_DIR:代表编译的是编译的路径

【CMake】第2篇 CMake构建.h与.cpp文件

 执行如下操作:

cd build
cmake ..
make
cd ..
cd bin
./main

【CMake】第2篇 CMake构建.h与.cpp文件文章来源地址https://www.toymoban.com/news/detail-401572.html

到了这里,关于【CMake】第2篇 CMake构建.h与.cpp文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CMake获取目录下所有源文件

    1、aux_source_directory指令         aux_source_directory( dir variable ) 比如:         aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE) , 这样将当前目录所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE变量中,但是头文件并没有被包括进去,若在头文件有函数的实现部分,采用这

    2024年02月15日
    浏览(39)
  • vscode Cmake 多目录,多文件夹,多文件联合编译配置

    前言:网上好多同学发的都是单目录(一个文件夹下),多个cpp文件的联合编译。对于多文件夹,多目录,多个CPP文件的编译可查询的资料查起来不是很容易。 现在来总结一下: 一、单文件夹(即单目录)下的多.cpp使用code runner 运行代码的方式。               其他博文有

    2024年01月15日
    浏览(40)
  • Android JNI系列详解之CMake配置库文件的输出目录

    一、前提 阅读上一篇文章Android JNI系列详解之CMake编译工具的使用,里面讲到了需要配置两个文件:CMakeList.txt和build.gradle 二、配置CMake编译工具输出库文件的路径 1.默认的库文件输出路径:app/build/intermediates/cmake/debug/obj 由此可见不便于每次查找,因此我们需要将这个路径配置

    2024年02月10日
    浏览(30)
  • 彻底解决cmake编译过程中fatal error: OpenNI.h: 没有那个文件或目录

    环境:ubuntu20.04 在cmake编译过程中,最常见的莫过于fatal error: xxxx.h: 没有那个文件或目录,这个问题困扰着很多初学者,原因是没有找到某个头文件,小白版的解决方法,直接把这个头文件的地址写进.cpp源文件或者把头文件地址写进 CMakeLists.txt INCLUDE_DIRECTORIES(头文件地址)。 用

    2024年02月16日
    浏览(33)
  • 【OpenCV】features2d_converters.cpp:2:10: fatal error: common.h: 没有那个文件或目录

    Linux环境下使用opencv的dnn模块调用yolov4遇到的坑(纯CPU) Ubuntu安装opencv4.4,第一次编译完成安装成功,发现编译时少加了几个选项,于是重新编译,结果报如下错误 发现opencv_contrib-4.4.0/modules/xfeatures2d/test/下的features2d文件夹是在第一次编译中报错少了一个hpp文件才加进去的,

    2024年02月15日
    浏览(28)
  • windows .vscode的json文件配置 CMake 构建项目 调试窗口中文设置等

    一、CMake 和 mingw64的安装和环境配置  二、tasks.json和launch.json文件配置 tasks.json launch.json  三、CMakeLists.txt文件 四、头文件和源文件 cat.h cat.cpp main.cpp 五、中文乱码问题解决  CMake C/C++程序输出乱码 Clion CMake C/C++程序输出乱码_cmake message 乱码-CSDN博客https://blog.csdn.net/qq_37274323/

    2024年01月24日
    浏览(41)
  • 在CMake中自定义宏 add_definitions(-DDEBUG)

    test.c CMakeLists.txt

    2024年01月20日
    浏览(30)
  • 使用cmake配置aws-cpp-sdk以及在cmake项目中使用

    clion msvc 15(2017) cmake 这里不多赘述 注意命令里一定要加–recurse-submodules参数,否则编译的时候会提示项目找不到子项目 先设置build directory为build,然后设置cmake options BUILD_ONLY:设置要编译的模块,多个模块之间用\\\";\\\"分隔 CMAKE_INSTALL_PREFIX:cmake的下载路径,完成安装之后使用f

    2024年02月02日
    浏览(38)
  • 【Cmake】Ctest测试工具 cmake命令之add_test和set_tests_properties使用案例

    目录 前言 一、初识CTest 二、使用方法 三、完整的简单测试工程 附录 附录一 cmake命令 enable_testing add_test 原文:CTest - https://www.cnblogs.com/457220157-FTD/p/4139149.html        CTest是CMake集成的一个测试工具,在使用CMakeLists.txt文件编译工程的时候,CTest会自动configure、build、test和展现

    2023年04月17日
    浏览(26)
  • 深度剖析qt cmake 的qt_add_qml_module函数

    qt_add_qml_module 函数是一个高层次的 CMake 函数,用于创建和管理 QML 模块。它简化了将 QML 代码与 C++ 代码集成以及与其他资源文件集成的过程。这个函数旨在用于 Qt 6 和更高版本的项目。 在调用 qt_add_qml_module 时,它会执行以下操作: 创建一个动态链接库——作为QML模块的插件

    2024年02月02日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包