cmake命令之AUX_SOURCE_DIRECTORY 的案例

2023-11-20

 AUX_SOURCE_DIRECTORY的命令形式如下

aux_source_directory(<dir> <variable>)

AUX_SOURCE_DIRECTORY的案例的目录如下

├── CMakeLists.txt
├── main.cpp
├── sum.cpp
└── sum.h

main.cpp的内容如下


#include "sum.h"
#include<iostream>
using namespace std;

void test()
{
>---cout<<sum(1,2)<< endl;
}



int main()
{
>---test();
>--- return 0;
}

 sum.h的内容如下

#include<stdlib.h>

int sum(int a, int b);

sum.cpp的内容如下

#include "sum.h"

int sum(int a, int b)
{
>---return a + b;
}

下一步,上CMakeLists.txt

#定义需用的cmake的最低版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

#项目信息
PROJECT(main)

#用于头文件的添加,注意必须是绝对路径,否则可能编译不过
#不过,此处可以用cmake的环境变量PROJECT_SOURCE_DIR或者
#CMAKE_SOURCE_DIR,他两都是指向工程顶层目录
INCLUDE_DIRECTORIES(PROJECT_SOURCE_DIR)

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

#指定生产目标
ADD_EXECUTABLE(main ${DIR_SRCS})

依次执行以下命令,即可编译完成 

mkdir build   //在CMakeLists.txt的同等目录下创建build文件夹
cmake ..   //cmake编译,其结果是Makefile,及一系列依赖文件
make        //编译,生产最终可执行文件

结果截图如下

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

cmake命令之AUX_SOURCE_DIRECTORY 的案例 的相关文章

  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何使用 Clang 编译器和 CMake 进行分析

    Question 1 What output我应该期待当我想使用进行分析时clang编译器 2 我该怎么办profiling for a C project它使用clang作为编译器andCMake 作为构建工具 重新分析我所使用的内容 1
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • Visual Studio 2022 CMake 预设

    我在我的项目中使用 CMake 并开始探索 CMakePresets 的可能性 我设法创建了一个默认的 Windows 预设 目前我的 Windows 默认预设将 CMAKE BUILD TYPE 设置为调试 现在我想在左侧下拉列表中选择配
  • 使用 QWT 构建时出错

    我收到一个错误 undefined reference to QwtPlot QwtPlot QWidget 当我尝试构建我的项目时 即使设置中一切看起来都很好 在我的 CmakeLists txt 中我有 include director
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实

随机推荐

  • 【SDR】OpenBTS 介绍及安装

    前言 今天是元旦假期的第一天 还有两天 就要跨入2018年了 无心工作 写两篇博客吧 纪念一下自己的2017 也为2018开个好头 希望2018 我的三个愿望 能够圆满实现 好了 开始正题 前一段时间搭建了OpenBTS的环境 用于测试其相
  • 图形界面编程:使用C语言开发GUI应用

    使用C语言开发图形界面 GUI 应用通常涉及使用特定的库或框架 下面将为您提供一个详细的教程 以介绍使用C语言开发GUI应用的一般步骤和常用库 1 选择GUI库 C语言本身不提供直接的GUI支持 因此您需要选择一个适合的GUI库或框架 以下
  • C++ 文件流操作详解

    1 C I O流 本文章有很多内容参考并借鉴了 C primer plus 这本经典 这里先说明一下 1 C I O流 1 1 数据流 1 2 控制台流 1 3 文件流 1 3 1 什么是文件流 1 3 2 缓冲区 1 3 3 文件流和控制
  • 鸿蒙-No pending exception expected: java.lang.RuntimeException: Parcel:

    问题描述 学习鸿蒙开发 在利用intent封装数据 这里我是自定义了1个实体对象 然后作为list的元素 封装list 进行页面跳转时 总报下列异常 A com example ex thread cc 2560 No pending ex
  • 四种方式求最大公约数和最小公倍数

    最大公约数和最小公倍数 两个自然数的最大公约数与它们的最小公倍数的乘积等于这两个数的乘积 1 质因数分解法 把每个数分别分解质因数 再把各数中的全部公有质因数提取出来连乘 所得的积就是这几个数的最大公约数 例如 求24和60的最大公约数 先
  • c语言中自己写实现strcat(),strcpy(),strcmp()的函数

    c语言中的string h头文件中虽然有这三个函数 但老师让我们自己写函数 所以添加了一点自己的想法写了这三个函数 strcat include
  • linux恢复模式如何输密码,在Ubuntu上使用恢复模式及Recovery Mode各选项的使用方法...

    本文介绍在Ubuntu上使用恢复模式的方法 包括Recovery Mode选项 Clean Dpkg Fsck Grub Root 的使用方法 前言 Ubuntu操作系统带有恢复模式 通过此功能 用户可以访问损坏系统的命令行 修复错误配置的
  • XSS & SQL injection

    作者 CyberPhreak XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X Web Security XSS more X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 介绍在这篇文章中我将说明所有关于X
  • CREATE INDEX 语句

    CREATE INDEX 语句用于在表中创建索引 索引 您可以在表中创建索引 以便更加快速高效地查询数据 用户无法看到索引 它们只能被用来加速搜索 查询 SQL CREATE INDEX 语法 在表上创建一个简单的索引 允许使用重复的值 C
  • Android:Log日志AS使用及Linux输出

    Android Studio中对应如下几种Log方法 1 Log v TAG 打印那些最为琐碎的 意义最小的日志信息 对应级别verbose 是Android 日志里面级别最低的一种 2 Log d TAG 打印一些调试信息 这些信息对你调
  • QT内存泄露问题

    原文链接 Qt浅谈之一 内存泄露 总结 乌托邦 CSDN博客 qt内存管理机制 关于堆栈不清楚的可以参考这篇文章 内存分配及堆与栈的区别 Keep Moving CSDN博客 在自己项目中 发现很多按键参数new之后并没有进行delete
  • vue面试题

    1 介绍一下vuex vuex是vue js应用的一个状态管理工具 state 用于保存我们应用的状态 2 v show与v if的区别和使用场景 区别 1 v show 只是简单的控制元素的 display 属性 而 v if 才是条件渲
  • 谷歌云|机密 GKE 节点可在计算优化的 C2D 虚拟机上使用

    机密 GKE 节点可用于计算优化的 C2D 虚拟机 许多公司已采用 Google Kubernetes Engine GKE 作为其应用程序基础架构中的关键组件 在某些情况下 使用容器和 Kubernetes 的优势可以超越传统架构 但迁移
  • linux中mysql启动服务命令(合集)

    linux的mysql启动服务命令 linux的mysql启动服务命令1 使用mysqld启动 关闭MySQL服务 mysqld是MySQL的守护进程 我们可以用mysqld来启动 关闭MySQL服务 关于mysqld MySQL 5 6官
  • You have not concluded your merge (MERGE_HEAD exists). Exiting because of unfinished merge.

    You have not concluded your merge MERGE HEAD exists Exiting because of unfinished merge git fetch all git reset hard ori
  • Select、Poll和Epoll

    看到一篇写得很不错的博文 有必要收藏一下 原文 https cloud tencent com developer article 1005481 提到select poll epoll相信大家都耳熟能详了 三个都是IO多路复用的机制 可以
  • 鸿蒙(二)基于小熊派实现LOT上云的智慧家居项目

    手把手教你利用鸿蒙OS实现智慧家居 LOT上云项目 一 前言 今天使用鸿蒙OS 做一个LOT上云的智慧家居项目 我们想实现的场景是这样的 云端WEB有一个控制界面 能够操控家房间里的灯和风扇 同时将房间里温度 湿度 光强实时显示出来 二 案
  • APUE学习的经验(引以为戒)

    前段时间在学习Linux 在没有感悟之前我是不敢把所得放到这里的 所以就一直没有新的文章 很惭愧啊 根据在网上搜集到的学习Linux的学习路线和自己当前对Linux的理解 我认为我可以学习APUE了 APUE 英文名应该是Advanced
  • mysql做生日日期字段的用到的类型_MySQL 日期类型函数及使用

    1 MySQL 数据库中有五种与日期时间有关的数据类型 各种日期数据类型所占空间如下图所示 2 datetime 与 date datetime 占用8字节 是占用空间最多的一种日期格式 它显示日期 同时也显示时间 5 5及以前的版本不支持
  • cmake命令之AUX_SOURCE_DIRECTORY 的案例

    AUX SOURCE DIRECTORY的命令形式如下 aux source directory