首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C++预处理器定义中获取CMake可执行文件名称

在C++预处理器定义中获取CMake可执行文件名称可以通过以下步骤实现:

  1. 在CMakeLists.txt文件中,使用add_executable命令定义可执行文件,并将其命名为你想要的名称。例如,假设你想要将可执行文件命名为"myapp",可以使用以下代码:
  2. 在CMakeLists.txt文件中,使用add_executable命令定义可执行文件,并将其命名为你想要的名称。例如,假设你想要将可执行文件命名为"myapp",可以使用以下代码:
  3. 在C++源代码中,你可以使用预定义的宏__FILE__来获取当前源文件的路径和文件名。然后,你可以使用C++字符串处理函数来提取出文件名部分。例如,假设你的源文件名为"main.cpp",可以使用以下代码获取文件名:
  4. 在C++源代码中,你可以使用预定义的宏__FILE__来获取当前源文件的路径和文件名。然后,你可以使用C++字符串处理函数来提取出文件名部分。例如,假设你的源文件名为"main.cpp",可以使用以下代码获取文件名:
  5. 运行上述代码将输出"CMake可执行文件名称: myapp"。

请注意,这里的答案中没有提及任何特定的云计算品牌商,因为问题与云计算无关。如果你需要了解与云计算相关的内容,请提供相关问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

cmake使用

Cmake 并不直接建构出最终的软件,而是产生标准的建构档( Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用....cpp/.c/.cc文件,并赋值给变量 aux_source_directory(路径 变量) # 给文件名/路径名或其他字符串起别名,用${变量}获取变量内容 set(变量 文件名/路径/...libxxx.so,在这里只要写xxx即可 add_library(库文件名称 STATIC 文件) # 将.cpp/.c/.cc文件生成可执行文件 add_executable(可执行文件名称 文件...libxxx.so,在这里只要写xxx即可 target_link_libraries(库文件名称/可执行文件名称 链接的库文件名称) 步骤二 执行命令 cmake PATH 或者 ccmake PATH...${PROJECT_SOURCE_DIR}/cmake),然后可以用INCLUDE命令来调用自己的模块 EXECUTABLE_OUTPUT_PATH 重新定义目标二进制可执行文件的存放位置 LIBRARY_OUTPUT_PATH

2K30

Jetson Nano上运行OpenCV C++

很多人问我,怎么在Jetson Nano上跑我课程的代码,今天就给大家演示一下,如何在Jetson Nano跑通OpenCV学堂 B站 OpenCV C++快速入门30讲最后一个课时人脸检测的代码演示。...01 人脸检测源码 从码云OpenCV学堂上获取源码,打开给大家看看,源码是这样的 #include #include using namespace...}/*.cpp #${CMAKE_SOURCE_DIR}/*.cp ) # 添加一个可执行程序 # 语法:add_executable( 程序名 源代码文件 ) add_executable...生成可执行文件 cmake已经成功了,现在再make一下,生成可执行文件吧,我们的可执行文件名称是target,之前定义在CMakeLists.txt文件,make也成功了,真不错!...04 运行测试 直接运行可执行文件,扫安毋躁,真的可以啦,OpenCV C++ 代码成功运行在Jetson Nano上了,从此以后我再也不说OpenCV C++快速入门30讲不能移植到嵌入式上跑了。

33530

CMake常用命令的一些整理

SHARED 代码文件名称) # 编译可执行程序 add_executable(可执行程序名 代码文件名称) 例如: # 编译静态库 add_library(add STATIC add.h add.cpp...(FATAL_ERROR "Enter cmake ${CMAKE_CURRENT_LIST_DIR}") 1.17 安装 install 指令用于定义安装规则,安装的内容包括二进制可执行文件、动态库、...操作系统变量 CMAKE_MAJOR_VERSION cmake主版本号,3.4.1的3; CMAKE_MINOR_VERSION cmake次版本号,3.4.1的4; CMAKE_PATCH_VERSION...cmake补丁等级,3.4.1的1; CMAKE_SYSTEM 操作系统名称,包括版本名,Linux-2.6.22; CAMKE_SYSTEM_NAME 操作系统名称,不包括版本名,Linux...; CMAKE_SYSTEM_VERSION 操作系统版本号,2.6.22; CMAKE_SYSTEM_PROCESSOR 电脑处理器名称,i686; UNIX 在所有的类UNIX平台为TRUE,包括

1.5K10

CMake 秘籍(二)

它是如何工作的 预处理器定义是在配置时由 CMake 在CMakeLists.txt定义的,并传递给预处理器。...探索主机处理器架构 本配方的代码可在github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-02/recipe-04获取,并包含一个 C++示例。...让 CMake 检测主机处理器架构的替代方法是使用 C 或 C++定义的符号,并使用 CMake 的try_run函数来构建并尝试执行源代码(参见第五章,配置时间和构建时间操作,第 8 个配方,探测执行...CMake 有一个相当广泛的打包模块集,用于检测最常用的库和程序,例如 Python 和 Boost。你可以使用cmake --help-module-list获取现有模块的列表。...然而,还有其他更强大的方法将解释型语言( Python)与编译型语言( C 或 C++)结合。

45920

C++ 编译体系入门指北

: 预处理(Preprocessing):预处理器处理源代码的预处理指令,#define、#include等。...预处理器会将#include指令包含的文件内容插入到该指令的位置,处理#define定义的宏等。预处理后的文件通常以.i为后缀。...生成的目标文件通常以.o(在Unix-like系统)或.obj(在Windows系统)为后缀。 链接(Linking):链接器将一个或多个目标文件以及需要的库链接成一个可执行文件或库。...Conan Conan 是一个现代的、跨平台的 C++ 包管理器,旨在解决依赖管理问题。它支持多种构建系统( CMake、Autotools、MSBuild 等),并且可以与 CI/CD 管道集成。...vcpkg vcpkg 是由微软开发的 C++ 包管理器,专注于简化库的获取和集成。它特别适合 Windows 平台,但也支持 Linux 和 macOS。

42121

面向 C++ 的现代 CMake 教程(二)

,并且我们已经知道如何在实践中使用可执行目标——在生成步骤CMake 将创建一个构建系统并为其填充编译每个源文件并将它们链接在一起成一个单一的二进制可执行文件的食谱。...编译定义仅仅是传递给编译器的-Dname=definition标志,用于配置 C++处理器定义(我们将在第五章,使用 CMake 编译 C++源代码讨论这个)。这里有趣的部分是第二个参数。...其中一个构建系统目标是ALL,CMake 默认生成的包含所有顶层列表文件目标的构建系统,可执行文件和库(不一定是自定义目标)。...BAR预处理器定义为foo 目标的可执行文件路径。...查看进阶阅读部分以获取更多详细信息。 管理目标源代码 我们已经知道如何告诉 CMake 哪些源文件组成一个目标——一个可执行文件或一个库。

29200

CMake学习笔记(二)——CMake语法

系统信息预定义变量 CMAKE_MAJOR_VERSION cmake主版本号,2.8.6的2 CMAKE_MINOR_VERSION cmake次版本号,2.8.6的8 CMAKE_PATCH_VERSION...cmake补丁等级,2.8.6的6 CMAKE_SYSTEM 系统名称,例如Linux-2.6.22 CMAKE_SYSTEM_NAME 不包含版本的系统名,Linux CMAKE_SYSTEM_VERSION...系统版本,2.6.22 CMAKE_SYSTEM_PROCESSOR 处理器名称,i686 UNIX 在所有的类UNIX平台为TRUE,包括OS X和cygwin WIN32 在所有的win32平台为...CMAKE_C_FLAGS 设置C编译选项 CMAKE_CXX_FLAGS 设置C++编译选项 二. CMake常用语法 1....内部构建方法cmake生成的中间文件和可执行文件都会存放在项目目录;外部构建方法,中间文件与可执行文件都存放在build目录。 笔者强烈建议使用外部构建方法。

5.4K100

CMake 秘籍(五)

前者允许我们在构建时间获取项目的依赖项,并且长期以来一直是 CMake 的一部分。后者模块是在 CMake 3.11 版本添加的,允许我们在配置时间获取依赖项。...Boost 库提供了丰富的 C++编程基础设施,并且受到 C++开发者的欢迎。我们已经在第三章,检测外部库和程序展示了如何在系统上找到 Boost 库。...显然,CMake 能够执行以下操作: 确定使用哪个编译器从列出的源文件获取目标文件。 选择适当的链接器来从这些目标文件构建库(或可执行文件)。 CMake 如何确定使用哪个编译器?...(可执行文件)的对象文件的档案 SHARED,用于创建共享库;即,可以在运行时动态链接和加载的库 OBJECT,用于创建对象库;即,不将对象文件归档到静态库,也不将它们链接成共享对象...与前一个示例相比,我们将展示如何在配置时获取 pybind11 依赖项,并使用我们在第四章,创建和运行测试,示例 3,定义单元测试并与 Google Test 链接遇到的 FetchContent 方法构建我们的项目

47420

CMake 入门教程:从零开始构建 C-C++ 项目

CMake入门教程:从零开始构建C/C++项目 CMake是一个跨平台的自动化构建工具,可以用于构建各种类型的项目,包括*C++、C、Python、Java*等。...本文将从零开始,介绍如何使用CMake构建一个简单的C/C++项目 安装CMake 首先,需要下载并安装CMake。可以从CMake官网下载。...该文件是CMake的构建配置文件,用于指定项目的源代码文件、编译选项和生成的可执行文件等信息。...add_executable指定了生成的可执行文件名称和源代码文件的路径。...运行项目 在终端输入以下命令运行生成的可执行文件: ./hello 此时,将输出Hello, World!信息。至此,一个简单的C/C++项目就被成功构建了。

1K00

何在OpenCV DNN模块中使用NVIDIA GPU加速--(基于Windows)

在这篇文章,我们使用了 cuDNN 11.2,但您也可以使用其他 cuDNN 版本。 二、 获取OpenCV源码 1. 我们将使用 git 从 Github 获取 OpenCV 源代码。...:指定安装目录 OPENCV_EXTRA_MODULES_PATH:设置为 opencv_contrib 模块的位置 PYTHON_EXECUTABLE:设置为 python3 可执行文件,用于构建。...我的系统配置是: 处理器:AMD 锐龙 7 4800H、2900Mhz 核心数:8 显卡:英伟达 GeForce GTX 1650 4GB 内存:16GB 要使用 CUDA 后端运行代码,我们对 C++...在本文中,我们学习了如何在 Windows 操作系统上构建具有 CUDA 支持的 OpenCV DNN 模块。...我们讨论了安装(使用适当的设置)、构建 OpenCV DNN 模块所需的各种包、在安装过程初始化变量以便于安装、创建和配置 Python 虚拟环境以及使用 CMake 配置 OpenCV 构建。

6.2K10

从零开始构建向量数据库:Milvus 的源码编译安装(二)

Golang 和 C++ 开发环境 在上一篇文章,我们就提到过,Milvus 绝大多数代码是由 Golang 编写的,但是核心的部分又包含了一大堆 C++ 的内容(internal/core/src...源码获取 关于如何快速获取源代码,以及避免因为代码仓库过大,容易受到一些国内经常会遇到的网络质量影响而“拉(pull)”不下来数据的问题,我在上一篇文章的相同的小节“源码获取”小节中有提到过,你可以直接参考文中提到的解决方案...Intel x86 芯片的 macOS 设备 虽然在 CMake 官方网站,我们没有找到构建程序,但是在 CMake 的 GitHub 仓库发布页面,我们能够找到和 Milvus 官方 CI 使用版本一致的软件包...将文件下载之后,放到可执行文件目录(/usr/local/bin/),或者类似我们上文中安装 gvm 的时候,把包含 cmake 的路径添加到环境变量即可完成构建的 CMake 的安装。...我们同样有两个选择,一个是参考前文中处理 Intel 芯片 macOS 环境 CMake 的处理方式,只选择官方开始支持 ARMv64 的软件版本,完成构建程序的安装。

1.7K00

从零开始构建向量数据库:Milvus 的源码编译安装(二)​

Golang 和 C++ 开发环境 在上一篇文章,我们就提到过,Milvus 绝大多数代码是由 Golang 编写的,但是核心的部分又包含了一大堆 C++ 的内容(internal/core/src...源码获取 关于如何快速获取源代码,以及避免因为代码仓库过大,容易受到一些国内经常会遇到的网络质量影响而“拉(pull)”不下来数据的问题,我在上一篇文章的相同的小节“源码获取”[9]小节中有提到过,你可以直接参考文中提到的解决方案...Intel x86 芯片的 macOS 设备 虽然在 CMake 官方网站,我们没有找到构建程序,但是在 CMake 的 GitHub 仓库发布页面[11],我们能够找到和 Milvus 官方 CI...将文件下载之后,放到可执行文件目录(/usr/local/bin/),或者类似我们上文中安装 gvm 的时候,把包含 cmake 的路径添加到环境变量即可完成构建的 CMake 的安装。...我们同样有两个选择,一个是参考前文中处理 Intel 芯片 macOS 环境 CMake 的处理方式,只选择官方开始支持 ARMv64 的软件版本,完成构建程序的安装。

1.9K10

CMake简易指南

感谢 C++委员会的大力推广,几乎支持市面上所有通用编译环境,以及大部分开源三方库均支持 cmake核心概念Target:目标单元,在CMake,target是一个非常核心的概念,与其他现代化工程系统的...一般来说,CMAKE_C_COMPILER和CMAKE_CXX_COMPILER分别指定 C 和 C++的编译器,修改则需要同时指定-DCMAKE_TOOLCHAIN_FILE=toolchain.cmake...pathA 的定义,libB 依赖 libA 时无需再手动添加 include pathA,target 应当做到自给自足自定义目标在 cmake ,除了库和执行文件可以作为目标,一些自定义操作也可以作为目标...:Android 系统并无可运行的编译器,生成 Android 可执行的 ELF 文件需要借助其他操作系统。...工具链通常用于指定系统名称、目标处理器类型、编译器、库搜索路径以及编译参数等信息,使用时在 cmake 配置阶段使用变量 CMAKE_TOOLCHAIN_FILE 指定,cmake ..

72050

C++ 语言】面向对象 ( 类定义 | 限制头文件引用次数 | 构造方法 | 析构方法 )

, 类一般定义在一个单独的文件 , C++ 的文件名不像 Java 一样必须与类名相同 , C++ 的文件名可以与类名不相等 , 一般情况下尽量让类名与文件名一致 ; 创建头文件 , 右键点击源码路径..., 选择 “添加” -> “添加新项” , 弹出新建文件对话框 ; 选择创建文件类型 , 选择左侧 “Visual C++” 下的 “头文件(.h)” 选项 , 然后点击打开 , 在右侧的解决方案资源管理器修改头文件名称为...STUDENT_H 类的定义 : 在 Student.h 声明该类 ; 使用 class 关键字声明类 , 在其中可以定义属性和方法 ; C++属性和方法有三种作用域 , 分别是 private...+” 下的 “C++ 文件(.cpp)” 选项 , 然后点击打开 , 在右侧的解决方案资源管理器修改头文件名称为 “Student.cpp” ; 类的实现 , 在 Student.h 头文件定义类之后...# cmake_minimum_required (VERSION 3.8) # 将源代码添加到此项目的可执行文件。

64320

CMake 秘籍(六)

您可以使用此签名在 CMake 脚本定义定义安装规则。...DEFINE_NO_DEPRECATED:这指示 CMake 生成预处理器代码,以排除编译的废弃代码。...我们使用预处理器变量(在我们的例子是message_EXPORT)来标记要导出的符号。在编译时,这些符号(类和函数)的隐藏将被解除。 静态库只是对象文件的存档。...这就是GenerateExportHeader.cmake模块的作用。它将定义一个包含所有逻辑的头文件,用于给出这个预处理器变量的正确定义。对于共享库,它将根据平台和编译器的组合提供所需的内容。...在本节,我们将为使用 CMake 配置和构建的非常简单的 C++示例项目准备一个 Conda 包,该项目没有除 C++之外的其他依赖项。在下一节,我们将准备并讨论一个更复杂的 Conda 包。

20100

披着CLion的外衣实则在讲CMake

,应该在 CLion 执行对应的源代码,CLion 会自动识别入口点函数,然后给出可执行的按钮。...:指定链接可执行文件时使用的链接选项 CMAKE_SYSTEM_NAME :指定当前操作系统名称( Windows、Linux 等) CMAKE_SYSTEM_PROCESSOR :指定当前处理器的类型...( x86、x86_64 等) CMAKE_CXX_COMPILER_ID :指定了当前使用的 C++ 编译器,同理可得 C 的编译器对应的名字。.../cmake/help/… aux_source_directory:这个指令简单实用,第一个参数传递一个文件目录,它会扫描这里面所有的源文件放到第二个参数定义的变量名。...GLOB 会产生一个由所有匹配 globbing 表达式的文件组成的列表,并将其保存到第二个参数定义的变量

4.4K30

cmake 简介2021-10-03

编译C文件时的选项,-g;也可以通过add_definitions添加编译选项 EXECUTABLE_OUTPUT_PATH:可执行文件的存放路径 LIBRARY_OUTPUT_PATH:库文件路径...第二行的命令限定了 CMake 的版本。第三行使用命令 AUX_SOURCE_DIRECTORY 将当前目录的源文件名称赋值给变量 DIR_SRCS 。...CMake 手册对命令 AUX_SOURCE_DIRECTORY 的描述如下: aux_source_directory( ) 该命令会把参数 中所有的源文件名称赋值给参数...第二行的命令限定了 CMake 的版本。第三行使用命令 AUX_SOURCE_DIRECTORY 将当前目录的源文件名称赋值给变量 DIR_SRCS 。...CMake 手册对命令 AUX_SOURCE_DIRECTORY 的描述如下: aux_source_directory( ) 该命令会把参数 中所有的源文件名称赋值给参数

32320

从零开始构建向量数据库:Milvus 的源码编译安装(一)

Golang 和 C++ 开发环境Milvus 绝大多数代码是由 Golang 编写的,但是核心的部分又包含了一大堆 C++ 的内容(internal/core/src),所以我们需要同时确保两种语言的运行环境...为了让 Golang 环境的折腾能省点劲,我曾经介绍过如何在 Linux 环境《搭建可维护的 Golang 开发环境》,相信应该能够解决你将会遇到各种 Golang 环境的问题。...相比较 Golang,折腾 C++ 的环境非常容易,在 Linux 环境,基本能够用简单的命令行来快速下载构建好的二进制软件包,这部分内容,我们将在下文中展开。...target: x86_64-unknown-linux-gnu Host CPU: znver1因为我们不需要 clang-format 和 clang-tidy 之外的程序,所以我们可以手动将两个可执行文件复制到系统的可执行程序目录.../bin/ ,发现构建完毕的 milvus 二进制可执行文件,尝试运行一下 ./bin/milvus,可以看到类似下面的输出:.

2.3K30
领券