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

add_executable创建两个二进制文件而不是一个

add_executable是CMake中的一个命令,用于创建一个可执行文件。根据给定的源文件列表,它将生成一个二进制文件,该文件可以在操作系统上运行。

在CMake中,可以使用add_executable命令来创建一个或多个可执行文件。如果在add_executable命令中指定了多个源文件,CMake将会为每个源文件生成一个独立的二进制文件。

这种创建两个二进制文件而不是一个的情况通常发生在项目中存在多个入口点的情况下。每个入口点都有自己的源文件,并且需要生成对应的可执行文件。

对于这种情况,可以在CMakeLists.txt文件中使用多个add_executable命令来创建多个二进制文件。例如:

代码语言:txt
复制
add_executable(executable1 source1.cpp)
add_executable(executable2 source2.cpp)

上述代码将会创建两个可执行文件executable1和executable2,分别对应source1.cpp和source2.cpp这两个源文件。

add_executable命令的优势在于它可以方便地管理项目中的多个可执行文件,并且可以根据需要进行灵活的配置和构建。

在云计算领域中,使用CMake来管理和构建项目是一种常见的做法。腾讯云提供了云原生应用开发平台Tencent Cloud Native,其中包括了CMake的支持。您可以通过Tencent Cloud Native来构建和部署基于CMake的项目。

更多关于Tencent Cloud Native的信息,请访问:Tencent Cloud Native产品介绍

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

相关·内容

C#.NET 移动或重命名一个文件夹(如果存在,则合并不是出现异常报错)

.NET 提供了一个简单的 API 来移动一个文件夹 Directory.Move(string sourceDirName, string destDirName)。...一旦 B 文件夹是存在的,那么这个时候会抛出异常。 然而实际上我们可能希望这两个文件夹能够合并。 .NET 的 API 没有原生提供合并两个文件夹的方法,所以我们需要自己实现。...方法是递归遍历里面的所有文件,然后将源文件夹中的文件依次移动到目标文件夹中。为了应对复杂的文件夹层次结构,我写的方法中也包含了递归。...back, directoryInfo.Name)), depth + 1); } Directory.Delete(source); } } depth 是一个整型...我在计算文件需要移动到的新文件夹的路径的时候,需要使用到这个递归深度,以便回溯到最开始需要移动的那个文件夹上。

46130
  • CMake基础教程

    最后一行,在main.cpp文件创建一个可执行命令(add_executable()),它的名字和工程名称(${PROJECT_NAME})相同,然后将源代码编译到名称为CMakeTest的可执行文件中..." << argc << argv[0] << endl; return 0; } 将这两个文件放置在同一目录下,然后依次执行如下命令: cmake...在这种情况下,我们不需要创建一个二进制可执行文件;取而代之,我们创建一个编译好的文件,其中包含了所有的函数、类等等,使用它来开发。我们可以将这个库文件与其它应用共享,不需要共享我们的源代码。...命令add_library(Hello hello.cpp hello.h)定义了我们新创建的库的名称,库名称为Hello,hello.cpp和hello.h是库的源文件。...执行这一行命令将会产生一个共享文件(在OS X或者Unix下生成一个*.so文件,在Windows下生成*.dll文件),这取决于我们所使用的操作系统,或者是要创建动态库还是静态库。

    63200

    CMake学习笔记

    —–高级编译配置工具 当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等)这时候神器就出现了—–CMake!...ADD_EXECUTABLE关键字 生成可执行文件 ADD_EXECUTABLE(hello ${SRC_LIST}) 生成的可执行文件名是hello,源文件读取变量SRC_LIST中的内容 也可以直接写...以上面的 ADD_EXECUTABLE 指令为例,如果存在另外一个 func.cpp 源文件 就要写成:ADD_EXECUTABLE(hello main.cpp func.cpp)或者ADD_EXECUTABLE.../configure –prefix=/usr 如何安装HelloWord 使用CMAKE一个新的指令:INSTALL INSTALL的安装可以包括:二进制、动态库、静态库以及文件、目录、脚本等 使用CMAKE...0x00007f41c0b7c000) 链接静态库 TARGET_LINK_LIBRARIES(main libhello.a) 特殊的环境变量 CMAKE_INCLUDE_PATH 和 CMAKE_LIBRARY_PATH 注意:这两个是环境变量不是

    2.1K20

    CMake学习笔记合集

    ADD_EXECUTABLE关键字 作用:生成可执行文件 ADD_EXECUTABLE(hello ${SRC_LIST}) 生成的可执行文件名是hello,源文件读取变量SRC_LIST中的内容...以上面的 ADD_EXECUTABLE 指令为例,如果存在另外一个 func.cpp 源文件 就要写成:ADD_EXECUTABLE(hello main.cpp func.cpp)或者ADD_EXECUTABLE...ADD_EXECUTABLE(hello main) 后缀可以不写,它会自动去找.c和.cpp,最好不要这样写,可能会有这两个文件main.cpp和main。.../configure –prefix=/usr 如何安装HelloWord 使用CMAKE一个新的指令:INSTALL INSTALL的安装可以包括:二进制、动态库、静态库以及文件、目录、脚本等 使用CMAKE...0x00007f41c0b7c000) 链接静态库 TARGET_LINK_LIBRARIES(main libhello.a) 特殊的环境变量 CMAKE_INCLUDE_PATH 和 CMAKE_LIBRARY_PATH 注意:这两个是环境变量不是

    2.2K20

    Cmake的使用

    CMake可以说已经成为大部分C++开源项目标配 传统的C++文件不通系统对应不通的编译 比如 当添加一个文件的时候需要对不通操作系统中的工程进行修改 有了Cmake以后,只需要编写一个...CmakeLists文件就可以对应将一个C++工程不通操作系统 当新添加一个文件的时候只需要更改对应的CmakeLists即可 Cmake语法 基本语法格式:指令(参数 1 参数 2…)...(target library1library2…) add_subdirectory – 向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置 # 添加src子目录,src中需有一个...# 表示上级目录 ../ # 表示上级目录 两种构建方式 内部构建(in-source build):不推荐使用 内部构建会在同级目录下产生一大堆中间文件,这些中间文件不是我们最终所需要的...在当前目录下,创建build文件夹 mkdir build # 2. 进入到build文件夹 cd build # 3.

    1.4K30

    CMake,大型项目采用的构建工具

    所以另外一个工具就产生了--CMake。 CMake的最终目的也是生成Makefile。所以建议学习这两个工具之前,先学习一下Makefile的内容。...比如只有几个文件的构建,使用Makefile是最好的选择。autotools和CMake大多都是应用在大型的项目上。接下来讲讲新工具: CMake的特点 开放源代码。...如何使用CMake编译工程 一个简单的cmake例子只需要两个文件:CMakeLists.txt和main.c。我们准备一下这两个文件。...指令 ADD_EXECUTABLE 语法 ADD_EXECUTABLE([BINARY] [SOURCE_LIST]) 说明 定义了这个工程会生成一个文件名为[BINARY]可执行文件,相关的源文件是...步骤如下: 为工程创建一个子目录src,用于放置工程源代码main.c和CMakeLists.txt文件 在src的目录中的CMakeLists.txt内容如下: SET(SRC_LIST main.c

    1.1K20

    CMake学习笔记(三)——以笔者的Robosub竞赛为例

    /IPCServer) 此段代码下,定义了项目名称IPCSocket后,CMake便自动生成了两个变量: // 二进制文件保存路径; PROJECT_BINARY_DIR = IPCSocket_BINARY_DIR.../NCFunctions/CMakeLists.txt /NCFunctions文件夹中,存放了专为笔者所属团队写类的源码。...生成图像客户端目标文件,是基于之前自定义函数部分中的imageprocessing_fun的图像处理函数的,之前这些函数已经被处理为库文件,被存储在工程生成路径下的lib路径中,所以指令LINK_DIRECTORIES...用于生成目标二进制可执行文件,有两个参数如下: IPCImageClient:生成目标二进制可执行文件名称 ....有两个参数如下: IPCImageClient:先前在ADD_EXECUTABLE中指定的目标二进制可执行文件名称 ${LIBS_IMAGE}:依赖库文件列表 综上,指令ADD_EXECUTABLE(IPCImageClient

    1.2K100

    深入浅出CMake(一):基础篇

    当然,我并不是说 cmake 比 make 更高级,更好,只是相对于新手而言,它是很友好的,我们都希望把精力花在编写具体的业务代码上,不是炫技一般编写复杂的 Makefile 文件,我决定学习 CMake...一个最简单的 CMake 例子 要构建一个 CMake 编译系统,首先需要在代码根目录创建一个 CMakeLists.txt 文件,这个文件是用来描述构建过程的,可以看做是一个高级版的 Makefile...,也多了一个 Makefile 文件。...object CMakeFiles/hello.dir/hello.cpp.o [100%] Linking CXX executable hello [100%] Built target hello 生成了两个文件...cmake 中的 target cmake 的主要工作大多是为了操作各种各样的 target,cmake 把二进制可执行文件和库都称为 target。

    1.3K30

    万字总结编译利器CMake,从入门到项目实战演练

    在Step1目录中创建一个CMakeLists.txt文件,如下所示: cmake_minimum_required(版本3.10)# 设置项目名称project(教程)# 添加可执行文件add_executable...可执行文件可以使用此库,不是使用编译器提供的标准平方根函数。 在本教程中,我们将库放入名为MathFunctions的子目录中。...例如,要在“调试”模式下运行测试,请从构建目录(不是“调试”子目录!)中使用ctest -C Debug -VV。或者,从IDE构建RUN_TESTS目标。...接下来,我们将重构MathFunctions使其成为使用mysqrt或sqrt封装的真实库,不是要求调用代码执行此逻辑。...让我们从构造一个INTERFACE目标并指定所需的C++标准级别11开始,不是使用CMAKE_CXX_STANDARD。

    1.2K00

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

    执行了该条指令之后,将会自动创建两个变量: _BINARY_DIR:二进制文件保存路径; _SOURCE_DIR:源代码路径; project...(CRNode) 执行了上一条指令,即定义了一个项目名称CRNode,相应的会生成两个变量:CRNode_BINARY_DIR, CRNode_SOURCE_DIR。...我们可以通过SET指令对其进行设置最终的目标二进制的位置,即最终生成的工程可执行文件与最终的共享库,不包含编译生成的中间文件。...构建或安装时,如果平台支持符号链接,且链接器支持so名称,那么恰当的符号链接将会被创建。如果只指定两者中的一个,缺失的另一个假定为具有相同版本号。...TARGETS targets:targets即为我们通过ADD_EXECUTABLE或ADD_LIBRARY定义的目标文件,可能是可执行二进制,动态库,静态库; DESTINATION

    5.5K100

    CMake 基础学习

    binary_dir 指定中间二进制和目标二进制存放的位置 EXCLUDE_FROM_ALL 编译过程中排除的文件 aux_source_directory 查找目录中的所有源文件 aux_source_directory...指定链接器在链接给定目标时应在其中搜索库的路径 : add_library 创建的target名称 或者 add_executable 创建的target名称 target_link_libraries...指定在编译给定目标时要使用的包含目录 # 添加头文件的路径,以便查找到头文件 : add_library 创建的target名称 或者 add_executable 创建的target名称...该命令用来查找一个文件一个名为的cache条目会被创建来存储该命令的结果。如果找到了该库文件,那么结果会存储在该变量里,并且搜索过程将不再重复,除非该变量被清空。...Simple.cpp) add_dependencies(demo model_login) add_executable 添加一个可执行文件 # create exe add_executable(

    1.8K40

    CMake常用命令的一些整理

    bin子目录下: #设定可执行二进制文件的目录 set( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 1.7 设置链接库搜索目录 例如将链接库搜索目录设置为当前项目文件夹下...; if (var1 OR var2):如果两个变量有一个为真时为真; if (COMMAND cmd):如果 cmd 确实是命令并可调用为真; if (EXISTS dir) if (EXISTS file...):如果目录或文件存在为真; if (file1 IS_NEWER_THAN file2):当 file1 比 file2 新,或 file1/file2 中有一个不存在时为真,文件名需使用全路径; if...,通常情况下会单独开一个third筛选器存储这些第三方库的项目,怎么做?...2.2 警告:检测到时钟错误,您的创建可能是不完整的 在项目根目录下执行命令: touch * 更新所有文件时间。 文章整理自网络,版权归原作者所有,如有侵权,请联系删除。

    1.6K10

    cmake 学习笔记(一)

    ==>先生成一个静态库,链接该库 例子四 ==>将源文件放置到不同的目录 例子五 ==>控制生成的程序和库所在的目录 例子六 ==>使用动态库不是静态库 例子一 一个经典的C程序,如何用cmake.../n"); return 0; } 编写一个 CMakeList.txt 文件(可看做cmake的工程文件): project(HELLO) set(SRC_LIST main.c) add_executable...方式来构建(即生成中间产物与源代码分离),并始终坚持这种方法,这也就是此处为什么单独创建一个目录,然后在该目录下执行 cmake 的原因 cmake .....add_library 则告诉生成一个文件。 注意:CMakeList.txt 文件中,命令名字是不区分大小写的,参数和变量是大小写相关的。...,每个源文件目录都需要一个,还好,每一个不是太复杂 顶层的CMakeList.txt 文件 project(HELLO) add_subdirectory(src) add_subdirectory(

    53110

    cmake用法

    (main main.cpp Math.cpp) 在add_executable参数中加入Math.cpp 方法二 如果源文件很多,这样写就很蛋疼了。..., main.cpp为源文件 # 方法一:一个个添加 # add_executable(main main.cpp Math.cpp) # 方法二:查找目录下文件到变量中,然后引用变量 # 查找当前目录下的所有源文件...DIR_SRCS) # 指定生成目标 add_executable(Demo ${DIR_SRCS}) 入门案例三(多目录、多文件) 对于这种情况,需要分别在项目根目录 Simple和 math 目录里各编写一个...) set (Demo_VERSION_MINOR 0) 为了在代码中获取版本信息,我们可以修改 config.h.in 文件,添加两个预定义变量: #define Demo_VERSION_MAJOR...生成二进制安装包: cpack -C CPackConfig.cmake ? 6.png 生成源码安装包 cpack -C CPackSourceConfig.cmake

    1.2K30
    领券