Cmake
文章平均质量分 59
cmake使用手册及示例
yangjj2005
这个作者很懒,什么都没留下…
展开
-
Cmake中文教程(九)【2022.05.10】
第 9 步:选择静态或共享库在本节中,我们将展示如何使用BUILDSHAREDLIBS变量控制add_library()的默认行为, 并允许控制如何构建没有显式类型 ( STATIC、SHARED、 MODULE或OBJECT)的库。为此,我们需要添加BUILDSHAREDLIBS到顶层CMakeLists.txt。我们使用option()命令,因为它允许用户有选择地选择该值是否应该是ON或OFF。接下来我们将重构MathFunctions成为一个用mysqrt或sqrt封装起来的真正的库,而不翻译 2022-05-10 21:25:22 · 378 阅读 · 0 评论 -
Cmake中文教程(十一)【2022.05.12】
# 第 11 步:添加导出配置在本教程的“安装与检测”一节中,我们添加了 CMake 安装项目的库和头文件的功能。在“封装与安装”一节中 ,我们添加了封装信息的功能,以便将其分发给其他人。下一步是添加必要的信息,以便其他 CMake 项目无论是从构建目录、本地安装还是封装时都可以使用我们的项目。第一步是更新我们的install(TARGETS)命令不仅可以指定 一个DESTINATION,还可以指定EXPORT。EXPORT关键字生成一个 CMake 文件,其中包含从安装树导入 install翻译 2022-05-12 21:36:11 · 1588 阅读 · 2 评论 -
Cmake中文教程(三)【2022.05.10】
第 3 步:为库添加使用要求使用要求允许更好地控制库或可执行文件的链接和包含行,同时还可以更好地控制 CMake 中目标属性的传递。利用使用要求的主要命令是:target_compile_definitions()target_compile_options()target_include_directories()target_link_libraries()让我们从 Adding a Library重构代码以使用现代 CMake的使用要求方法。我们首先声明,任何链接到Math翻译 2022-05-10 19:19:49 · 195 阅读 · 0 评论 -
Cmake中文教程(七)【2022.05.10】
第 7 步:打包安装程序接下来假设我们想将我们的项目分发给其他人,以便他们可以使用它。我们希望在各种平台上提供二进制和源代码分发。这与我们之前在“安装与测试”中进行的安装有点不同,在那一节中,我们正在安装从源代码构建的二进制文件。在此示例中,我们将构建支持二进制安装和包管理功能的安装包。为此,我们将使用 CPack 创建平台指定的安装程序。具体来说,我们需要在顶层CMakeLists.txt文件的底部添加几行。*CMakeLists.txt* include(InstallRequiredSys翻译 2022-05-10 20:46:45 · 214 阅读 · 0 评论 -
Cmake中文教程(十)【2022.05.10】
第 10 步:添加生成器表达式Generator expressions在构建系统生成期间进行评估,以生成特定于每个构建配置的信息。Generator expressions在许多目标属性的上下文中是允许的,例如LINKLIBRARIES, INCLUDEDIRECTORIES,COMPILEDEFINITIONS和别的。它们也可以在使用命令填充这些属性时使用,例如 targetlinklibraries(),targetincludedirectories(), targetcompile_def翻译 2022-05-10 21:53:45 · 267 阅读 · 0 评论 -
Cmake中文教程附完整代码(二)【2022.05.10】
第 2 步:添加库现在我们将在我们的项目中添加一个库。这个库将包含我们自己的计算平方根的实现。然后可执行文件可以使用这个库而不是编译器提供的标准平方根函数。对于本教程,我们将把库放到一个名为MathFunctions子目录中. 这个目录已经包含了一个头文件 MathFunctions.h,和一个源文件mysqrt.cxx。源文件有一个调用函数mysqrt,它提供与编译器函数sqrt类似的功能。将以下仅一行命令的CMakeLists.txt文件添加到MathFunctions 目录中:*Ma翻译 2022-05-10 19:04:57 · 484 阅读 · 0 评论 -
C++生成dll和调用dll以及利用CMAKE生成c++ dll的问题
一、dll生成1、设置项目属性:打开vs,建立空项目,在项目的 配置属性->常规->项目默认值->配置类型 修改为:动态库(.dll)2、准备文件:填写头文件和源文件,注意头文件的声明,源文件正常。—————————————————————————————————————| 头文件: ...原创 2022-05-09 19:33:35 · 4981 阅读 · 0 评论 -
Cmake中文教程(六)【2022.05.10】
第 6 步:添加自定义命令和生成的文件假设,出于本教程的目的,我们决定永远不想使用平台log和exp函数,而是想生成一个预先计算的值表以在mysqrt函数中使用。在本节中,我们将创建表作为构建过程的一部分,然后将该表编译到我们的应用程序中。首先,让我们删除 MathFunctions/CMakeLists.txt中的对log和exp函数的检查。然后从mysqrt.cxx 中删除HAVEEXP和HAVELOG检查。同时,我们可以删除.#include <cmath>在MathFunct翻译 2022-05-10 20:27:08 · 214 阅读 · 0 评论 -
Cmake中文教程附完整代码(一)【2022.05.10】
第 1 步:基本起点最基本的项目是从源代码文件构建的可执行文件。对于简单的项目,只需要一个三行CMakeLists.txt文件。这将是我们教程的起点。在目录中创建一个 CMakeLists.txt文件,Step1如下所示:*CMakeLists.txt* cmake_minimum_required(VERSION 3.10)# set the project nameproject(Tutorial)# add the executableadd_executable(Tutori翻译 2022-05-10 17:35:40 · 790 阅读 · 0 评论 -
Cmake中文教程(五)【2022.05.10】
第 5 步:添加系统自省让我们考虑在我们的项目中添加一些代码,这些代码取决于目标平台可能没有的功能。对于这个例子,我们将添加一些代码,这些代码取决于目标平台是否具有log和exp 功能。当然,几乎每个平台都有这些功能,但在本教程中假设它们并不常见。如果平台有log,exp那么我们将使用它们来计算函数 mysqrt中的平方根。我们首先使用 MathFunctions/CMakeLists.txt中的 CheckSymbolExists模块。在某些平台上,我们需要链接到 m库。如果最初没有找到log,e翻译 2022-05-10 20:08:05 · 150 阅读 · 0 评论 -
Cmake中文教程(十二)【2022.05.12】
第 12 步:打包调试和发布注意:此示例对单配置生成器有效,不适用于多配置生成器(例如 Visual Studio)。默认情况下,CMake 的模型是构建目录只包含一个配置,无论是 Debug、Release、MinSizeRel 还是 RelWithDebInfo。但是,可以将 CPack 设置为捆绑多个构建目录并构建一个包含同一项目的多个配置的包。首先,我们要确保调试和发布版本对将要安装的可执行文件和库使用不同的名称。让我们使用d作为调试可执行文件和库的后缀。CMAKE_DEBUG_PO翻译 2022-05-12 21:58:19 · 862 阅读 · 0 评论 -
Cmake中文教程(四)【2022.05.10】
第 4 步:安装和测试现在我们可以开始为我们的项目添加安装规则和测试支持。安装规则安装规则相当简单:对于 MathFunctions,我们要安装库和头文件,而对于应用程序,我们要安装可执行文件和配置的头文件。所以在 MathFunctions/CMakeLists.txt最后我们添加:*MathFunctions/CMakeLists.txt* install(TARGETS MathFunctions DESTINATION lib)install(FILES MathFunct翻译 2022-05-10 19:46:52 · 186 阅读 · 0 评论 -
Cmake中文教程(八)【2022.05.10】
第 8 步:添加对测试仪表板的支持添加对向仪表板提交测试结果的支持很简单。我们已经在“测试支持”中为我们的项目定义了许多测试。现在我们只需要运行这些测试并将它们提交到仪表板。为了包括对仪表板的支持,我们需在顶层 CMakeLists.txt包含 CTest模块。用:*CMakeLists.txt* # enable dashboard scriptinginclude(CTest)去替代:*CMakeLists.txt* # enable testingenable_tes翻译 2022-05-10 21:04:58 · 322 阅读 · 0 评论