CMake获取目录下所有源文件

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

1、aux_source_directory指令
        aux_source_directory(< dir > < variable >)
比如:

        aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE) , 这样将当前目录所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE变量中,但是头文件并没有被包括进去,若在头文件有函数的实现部分,采用这种方式就容易出问题,所有我很少使用这种方式。

2、file指令,我通常使用这种方式

比如:

        file(GLOB ALL_SOURCE "*.cpp" "*.c")

        file(GLOB ALL_HEAD "*.hpp" "*.h")

        这样就将当前目录所有的源文件都放在了ALL_SOURCE变量中,所有的头文件放在了ALL_HEAD中。

        另外,file里面的第一个参数若使用GLOB_RECURSE,不仅能包括当前目录的文件,也可以包括当前目录子目录下面的文件,比如:

         file(GLOB_RECURSE ALL_SOURCE "*.cpp" "*.c")

         file(GLOB_RECURSE ALL_HEAD "*.hpp" "*.h")

        采用这种方式需要注意编译程序时,临时创建的build目录不要放在CMakeLists.txt文件的同目录或者子目录下,因为cmake在编译过程中也会产生临时的cpp文件,这样这些临时文件又被包括进去,就会报错,所以需要在外层目录编译文章来源地址https://www.toymoban.com/news/detail-614697.html

到了这里,关于CMake获取目录下所有源文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vscode 无法打开源文件

    以下是c/c++插件的intelligense设置情况: 解决办法: 重新安装vsode无用;重新下载mingw64,管用了!(我猜可能是之前换电脑移植文件的时候导致了部分文件丢失)

    2024年02月07日
    浏览(35)
  • VScode中添加头文件和源文件的方法

            在正常情况下,若同一文件夹下若头文件、源文件、和主要代码在同一文件夹下,则可以正常运行程序。 如图(此为Visual Studio 示例):   编译结果(无报错):     但在VScode中,同样的使用方式会产生报错。 如下:    main.c:  myheadfile.h: myheadfile.c:    报错如

    2023年04月09日
    浏览(34)
  • Visual Studio C++ 的 头文件和源文件

    在Visual Studio C++中,头文件(Header Files)和源文件(Source Files)是两种不同的文件类型,用于组织和管理C++代码。 头文件(Header Files): 后缀名为 .h 或 .hpp 的文件,例如 example.h 。 包含类、结构体、函数的声明、宏定义和类型定义等。 通常用于存放函数原型、类的声明、常

    2024年02月07日
    浏览(39)
  • Linux--多个源文件编译成同一个可执行文件

    写法一:不推荐 写法二、推荐 $@: 代表目标文件    $^: 代表生成目标文件的所有源文件

    2024年02月15日
    浏览(42)
  • 【C++】源文件.cpp和头文件.h分离编程

    将C++代码分为头文件(.h)和源文件(.cpp)的做法有以下几个好处: 模块化和代码组织:将函数和类的声明(包括函数原型、类的成员和属性等)放在头文件中,将函数和类的实现(具体的函数逻辑、成员函数的定义等)放在源文件中。这种分离有助于对代码进行模块化和组

    2024年02月09日
    浏览(28)
  • [CMakeLists]使用CMake后如何将目录内容复制到build目录

    你可以用add_custom_command. 说你的目标被调用 MyTarget ,然后你可以这样做: 每次构建 MyTarget 并将\\\"/ config\\\"的内容复制到目标exe/lib最终的目录时,都会执行此操作. 正如马克Lakata在下面评论指出,更换 PRE_BUILD 用 POST_BUILD 在 add_custom_command 确保复制如果生成成功才会发生. 说明 ${CMAKE_CO

    2024年02月16日
    浏览(30)
  • Vivado中如何修改IP源文件

    前一篇文章是通过改变JESD204B IP的设置,在Shared Logic里勾选in example design,来避免共用输入时钟的问题。那么还有没有别的办法呢?有没有更直接点的实现方式呢? 答案是肯定的:可以 直接修改IP,将IBUFDS从IP里移出去 ,放到外面就可以共用了。修改IP是一个比较复杂的办法,

    2024年02月11日
    浏览(68)
  • Lua之Lua源文件批量转换为luac字节码文件

    准备的工具:luac.exe  CSDN https://mp.csdn.net/mp_download/manage/download/UpDetailed Unity版:

    2024年02月11日
    浏览(24)
  • 教你怎么在电脑端下载西瓜视频源文件

    家里长辈平时爱用西瓜视频,看到喜欢的广场舞就会收藏,甚至想下载到视频机,晚上去广场跟着跳🤣。 这时计算机专业出身的我,就派上用场了。不废话,直接上手: 打开西瓜视频官网,搜索到想要的视频 打开 F12(开发者工具) 切换到移动端模式,刷新页面 在 Network

    2024年02月05日
    浏览(181)
  • 【STM32学习笔记】(5)—— STM32工程添加源文件和头文件

    STM32的工程文件构成较为复杂,同时为STM32工程文件添加源文件和头文件也是较为复杂的,下面就由此文章来介绍怎么给STM32工程添加源文件(.c)与头文件(.h),以跑马灯实验为例。 1、在Template工程文件夹下面新建一个 HARDWARE 的文件夹,用来存储以后与硬件相关的代码,然

    2024年02月16日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包