cmake相关内容
概述 我的CMake项目中的一些头文件是在构建过程中自动生成的。我的目标是设置CMakeLists.txt,以便为我的项目构建文档也会触发头文件的生成(而不会触发任何其他构建)。基本的CMake/DO2设置遵循MS tutorial中的初始步骤。 详细信息 此项目的目录结构有些非常规: ${CMAKE_SOURCE_DIR}是cmake/保存顶级CMakeLists.txt文件
..
我有一个文件version.txt VERSION_MAJOR 1 VERSION_MINOR 1 VERSION_PATCH 3 我要使用cmake添加主要、次要和补丁的定义。 我已尝试使用 file(STRING "version.txt" myvar) 但这只会将整个文件放入myvar。 如何获取数字? 推荐答案 您的file用法不正确,您希望使用
..
我在一个基于CMAKE的项目中使用clang 13.0.0,CMAKE_CXX_STANDARD被定义为20。以下代码导致编译错误(命名空间‘std’中没有名为‘u8string’的类型): #include #include int main() { #ifdef __cpp_char8_t std::u8string sss = u8"a
..
目前我有一个项目需要C++17,因此在CMakeLists.txt中我很早就有这样一行: set(CMAKE_CXX_STANDARD 17) 从命令行(cmake),偶尔我想测试一下该项目是否也可以用C++20编译。(以避免意外)。 如何选择从命令行使用C++20编译? 如果我这样做cmake -DCMAKE_CXX_STANDARD=20,则它稍后会被配置覆盖,而不是17
..
我不明白,为什么我们需要cmake来构建库?如果我的问题很愚蠢,我很抱歉,但我需要在Widnows上使用一些库,无论我选择什么库,我都需要用cmake来构建和/或编译它。它是用来做什么的?为什么我不能只#将我需要的东西包含到我的项目中,这样它就可以与我的项目同时编译/生成? 此外,有时我需要安装Ruby、Perl、Python所有这些特定版本,以便cmake可以构建库……我为什么需要这些程序,我
..
我正在尝试使用cmake为C++构建Box2D库。当我运行cmake gui时,我收到错误: CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select
..
CMake的较新版本(3.18及更高版本)了解CUDA代码编译所针对的CUDA体系结构的选择。目标具有CUDA_ARCHITECTURES属性,当设置该属性时,将为您生成适当的-gencode arch=whatever,code=whatever编译选项。如果您不设置此值,您甚至会收到警告: CMake Error in CMakeLists.txt: CUDA_ARCHITECTUR
..
当我想用CMake和最新版本的SFML库一起编译项目时,我发现了很多奇怪的错误(c++)。 C生成代码: cmake_minimum_required(VERSION 3.0) project(MLproject) SET(CMAKE_SYSTEM_NAME Windows) SET(CMAKE_SYSTEM_VERSION 1) SET(CMAKE_C_COMPILER
..
我编写了这段小代码,以确保我的软件在必要时可以链接到libatics。通常,只有在覆盆子PI上才需要链接到脂组学。目前,我使用的是Raspberry PI 4,64位Raspbian Bullseye。 以下是cmake代码: set(ATOMIC32_TEST_CODE " #include #include int m
..
我在这件事上挣扎的时间比我愿意承认的要长,我真的很感激你的帮助。 我正在尝试做一个涉及构建链接器和调度器的项目,我想如果我可以使用LLVM中已经构建的一些功能,那就太好了。我使用的是LLVM10。为了开始,我阅读了一些内容,并尝试构建this示例。因为我计划将LLVM嵌入到另一个项目中,使用this作为“如何构建”该示例的参考(见下文)。我认为依赖项只是示例CMakeLists.txt中的组
..
我正在对我的一个项目使用带有GNU make生成器的CMake,然后想详细地构建它。 我对实际产生东西的行感兴趣,对以下行不感兴趣: gmake[2]: Entering directory '/some/where' gmake[2]: Leaving directory '/some/other/place' 也没有写着: cd /some/where && /path/
..
我有一个编译成功的C项目。现在我想在同一个项目中使用C++代码,所以我将main.c重命名为main.cpp。该项目是针对嵌入式微控制器的,因此我正在使用arm-none-eabi工具链进行交叉编译。 将主文件重命名为.cpp后,出现以下错误: Linking CXX executable discovery_simple_test.elf /usr/lib/gcc/arm-none-
..
Cmake 3.15 32位 Assimp 4.1.0 你好,我在cmake和assimp方面遇到了一些困难。在过去的几天里,我一直在尝试通过cmake为CodeBlock生成一个简单的工作区。 我已尝试使用CMD和Cmake GUI方法生成解决方案,但未获得令人满意的结果。 在图形用户界面中,遵循生成项目的标准过程,然后定义适当的源路径和目标路径,并选择适当的生成器(Code
..
我使用CMake构建了一个由多个嵌套的静态库组成的项目。类似但简单的结构如下图所示: TestProject: |-CMakeLists.txt |-Main.cpp |-level2 | | - level2.cpp | | - level2.h | | - CMakeLists.txt | | - level1 | | |-level1.cpp |
..
这个问题可能部分重复,例如this question,但更多的是关于如果有更好的解决方案的话是什么。由于此问题结束时相当长,我用";+q+ 标记了特定问题。 我有这样的情况,我写了一个小库B,它依赖于其他一些大型项目A拆分成许多库A1, A2, ..., An,我的库有一些依赖于这些库,另一些不依赖于这些库。做正确的链接有点麻烦。这个库开始被其他人使用,我想避免每个人都经历这个糟糕的链
..
我的公司销售依赖于NVIDIA CUDA工具包的商业Linux应用程序。然而,我们的许多客户在他们的计算机上没有超级用户访问权限,并且无法自己安装CUDA,因此我们希望将CUDA静态库与我们的应用程序捆绑在一起。 我们的法律部门表示,我们需要实际将库的内容包含在我们应用程序的一个现有静态库中,而不是仅将CUDA静态库作为单独的文件提供。我可以手动创建这样一个合并库,它工作得很好: li
..
我通过cmake/CMakeLists.txt创建二进制文件myBinary。 我希望在我的二进制文件中“包含”默认选项。 换句话说,我希望使用myBinary --option myopt调用我的二进制文件,即使我只运行./myBinary 我如何才能做到这一点? 推荐答案 CMake没有为您要执行的操作提供内置支持。 一种解决方案是按照@Youka所说的做-
..
我用QtCreator完成了一个基于cmake的C++项目。我手动编写了CMakeLists.txt文件。当从FROM QtCreator的命令行构建时,我得到了如下目录结构,不出所料: MyProj/ - source code MyProj_build/ - object files and executable; I launch cmake from
..
我通过vcpkg install grpc安装GRPC并将其添加到cmake文件。 现在我想生成GRPC c++文件,我运行: protoc --cpp_out=grpc_file/ --grpc_out=grpc_file/ --proto_path=grpc_proto/ ./grpc_proto/side_information.proto 返回错误: protoc-ge
..
我使用的是基于ubuntu的发行版Peppermint 10 所以我执行了以下命令here,在此之前一切都很顺利 (the input) cmake -DBUILD_SHARED_LIBS=ON .. (the output) -- Testing if -Werror=pointer-arith can be used -- compiles -- Testing if -
..