cmake:aux_source_directory

2023-11-01

理论

aux_source_directory 查找在某个路径下的所有源文件。

aux_source_directory(< dir > < variable >)

搜集所有在指定路径< dir >下的源文件的文件名,将输出结果列表储存在指定的变量< variable >中。

该命令旨在供使用显式模板实例化的项目使用。 模板实例化文件可以存储在Templates子目录中,并使用此命令自动收集,以避免手动列出所有实例化。

试图使用此命令来避免编写库或可执行目标的源文件列表。 尽管这似乎可行,但是CMake无法生成知道何时添加新源文件的生成系统。 通常,生成的构建系统知道何时需要重新运行CMake,因为修改了CMakeLists.txt文件以添加新的源。 当仅将源代码添加到目录而不修改该文件时,将不得不手动重新运行CMake来生成包含新文件的构建系统。

实践

内容

.
├── CMakeLists.txt
├── main.cc
├── MathFunction.cc
└── MathFunction.h

CMakeLists.txt 内容:

# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)

# 项目信息
project (Demo2)

# 查找目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)

# 指定生成目标
add_executable(Demo ${DIR_SRCS})

MathFunction.cc内容:

double power(double base, int exponent)
{
    int result = base;
    int i;

    if (exponent == 0) {
        return 1;
    }
    
    for(i = 1; i < exponent; ++i){
        result = result * base;
    }

    return result;
}

MathFunction.h内容:

#ifndef POWER_H
#define POWER_H

extern double power(double base, int exponent);

#endif

main.cc内容:

#include <stdio.h>
#include <stdlib.h>
#include "MathFunction.h"

int main(int argc, char *argv[])
{
    if (argc < 3){
        printf("Usage: %s base exponent \n", argv[0]);
        return 1;
    }
    double base = atof(argv[1]);
    int exponent = atoi(argv[2]);
    double result = power(base, exponent);
    printf("%g ^ %d is %g\n", base, exponent, result);
    return 0;
}

运行

$ mkdir build && cd build
$ cmake ..
$ make
$ ./Demo  2 3
2 ^ 3 is 8

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake:aux_source_directory 的相关文章

  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • C++ 中的软(不是:弱)引用 - 这可能吗?有实施吗?

    在 C 中我正在使用boost shared ptr and boost weak ptr自动删除不再需要的对象 我知道这些与引用计数一起工作 在 Java 中 内存由垃圾收集器管理 它将内置对象引用视为strong WeakReferen
  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • 赋值运算符和复制构造函数有什么区别?

    我不明白C 中赋值构造函数和复制构造函数之间的区别 是这样的 class A public A cout lt lt A A lt lt endl The copy constructor A a b The assignment cons
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 转到 C# WPF 中的第一页

    我正在 WPF 中使用导航服务 为了导航到页面 我使用 this NavigationService Navigate new MyPage 为了返回我使用 this NavigationService GoBack 但是如何在不使用的情况
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据

随机推荐

  • 怎么查看jvm垃圾回收的算法看是那个

    在控制台输入命令 java XX PrintCommandLineFlags version 显示结果 XX UseParallelGC 新生代使用ParallerGC 老年代使用Serial Old 垃圾回收器列表 并行 垃圾收集的多线程
  • Drain基于固定深度解析树

    论文地址 http jmzhu logpai com pub pjhe icws2017 pdf Drain可以以流方式实时解析日志 为了加快解析过程 Drain使用了固定深度的解析树 请参见上图 根节点为树的顶层 底层为叶子节点 其他层为
  • BART模型简单介绍

    目录 一 概要 二 深入扩展 2 1 预训练任务 2 2 模型精调 一 概要 BART Bidirectional and Auto Regressive Transformers 模型使用标准的基于Transformer的序列到序列结构
  • Matplotlib入门:等高线图contour

    import matplotlib pyplot as plt import numpy as np def f x y return 1 x 2 x 5 y 3 np exp x 2 y 2 n 256 x np linspace 3 3
  • 2021-05-26

    win10 任务栏图标在文件夹的位置 C Users Administrator AppData Roaming Microsoft Internet Explorer Quick Launch User Pinned TaskBar ww
  • C语言拔高知识——指针的进阶(万字大文超详细)

    在之前的文章中 我已经讲解过了初阶指针的内容 今天就来讲一讲指针的进阶 上篇指针地址 保姆式指针讲解 超详细 适合初学者 指针详解 陈大大陈的博客 CSDN博客 目录 1 字符指针 2 指针数组 3 数组指针 3 1 数组指针的定义 3 2
  • centos7hadoop安装配置

    centos7 Hadoop安装配置 一 前置 1 新建虚拟机 先关闭防火墙 2 配置虚拟机网络 3 安装vim工具 4 设置免密登陆 5 安装同步时间工具 6 修改本计算机名字 二 安装配置JDK和Hadoop 1 通过xftp或者类似软
  • 三极管实现的锁存电路

    电路现象描述 电路上电后状态是万用表输出电压位1 874uV 电路复位输出低电平 当按键S2按下后 万用表测的电压为4 959V 高电平 按键S2松开后 万用表仍然保持输出4 918V 高电平 既实现了高电平的锁存 当按键S1按下后电路万用
  • 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。分子分母要求互质。

    转载 蓝桥杯真题 18省Ca1 分数 1 1 1 2 1 4 1 8 1 16 每项是前一项的一半 如果一共有20项 求这个和是多少 结果用分数表示出来 类似 3 2 伏城无嗔的博客 CSDN博客
  • 几个常用算法的适应场景及其优缺点(非常好)

    本文主要回顾下几个常用算法的适应场景及其优缺点 机器学习算法太多了 分类 回归 聚类 推荐 图像识别领域等等 要想找到一个合适算法真的不容易 所以在实际应用中 我们一般都是采用启发式学习方式来实验 通常最开始我们都会选择大家普遍认同的算法
  • 关于appcompat_v7的问题

    今天处理了一下之前遗留下来的一个问题 问题现象 1 路径 res values 下的styles xml文件显示下述错误 error Error retrieving parent for item No resource found th
  • spark 访问阿里云OSS

    pom xml
  • FreeNAS-11.2-U7 smb共享和FTP设置

    环境 最少2块硬盘 1块系统盘 1块存储盘 IP 10 0 1 101 24 下载 https download freenas org 11 2 STABLE U7 x64 FreeNAS 11 2 U7 iso 配置SMB共享 第一步
  • 月报总结|Moonbeam 8月份大事一览

    夏日已经趋近尾声 脚下的这片土地正迎来凉爽的秋天 Moonbeam在最炎热的8月中 依然朝着其愿景不断向前迈进 Moonbeam生态也迎来了许多好消息 先前启动的第二批生态Grant计划也完成了最后的链上投票 3个项目成功通过投票 将获得G
  • java 稀疏数组(结合IO流)

    package com test01 import java io 稀疏数组的应用 public class Run private static String path D data dat public static void main
  • PySpark与DataFrame简介

    PySpark与DataFrame简介 1 PySpark与DataFrame简介 1 1 Spark简介 1 2 Spark DataFrame生成 1 基于RDD使用toDF 2 读取本地文件 3 读取HIVE表 4 pandas Da
  • 线性布局中的layout_weight属性

    作者 华清远见讲师 layout weight属性是线性布局的特有属性 当需要去按比例分配某一行或某一列上的控件时 通常会想到使用权重这个属性去解决 一般在使用该属性时 要把控件的layout width或layout height设置成0
  • VMware创建虚拟机时出现 network bot from intel e1000

    准备在vmware 上 创建虚拟机 点击启动时 却出现 network bot from intel e1000 operating system not found 首先查看一下是否安装使用了iso镜像 查询步骤如图 选中使用即可 如果还
  • selenium测试框架快速搭建(ui自动化测试)

    一 介绍 selenium目前主流的web自动化测试框架 支持多种编程语言Java pythan go js等 selenium 提供一系列的api 供我们使用 因此在web测试时我们要点页面中的某一个按钮 那么我们只需要获取页面 然后根据
  • cmake:aux_source_directory

    理论 aux source directory 查找在某个路径下的所有源文件 aux source directory lt dir gt lt variable gt 搜集所有在指定路径 lt dir gt 下的源文件的文件名 将输出结果