cmake相关内容

如何为在构建过程中生成头文件的构建设置DOOXO和CMake?

概述 我的CMake项目中的一些头文件是在构建过程中自动生成的。我的目标是设置CMakeLists.txt,以便为我的项目构建文档也会触发头文件的生成(而不会触发任何其他构建)。基本的CMake/DO2设置遵循MS tutorial中的初始步骤。 详细信息 此项目的目录结构有些非常规: ${CMAKE_SOURCE_DIR}是cmake/保存顶级CMakeLists.txt文件 ..
发布时间:2022-05-28 09:16:47 C/C++开发

CMake:从多行文本文件中获取版本

我有一个文件version.txt VERSION_MAJOR 1 VERSION_MINOR 1 VERSION_PATCH 3 我要使用cmake添加主要、次要和补丁的定义。 我已尝试使用 file(STRING "version.txt" myvar) 但这只会将整个文件放入myvar。 如何获取数字? 推荐答案 您的file用法不正确,您希望使用 ..
发布时间:2022-05-24 20:48:17 其他开发

C++20、clang 13.0.0、u8字符串支持

我在一个基于CMAKE的项目中使用clang 13.0.0,CMAKE_CXX_STANDARD被定义为20。以下代码导致编译错误(命名空间‘std’中没有名为‘u8string’的类型): #include #include int main() { #ifdef __cpp_char8_t std::u8string sss = u8"a ..
发布时间:2022-05-17 12:28:35 C/C++开发

如何从CMake命令行跳过C++标准?

目前我有一个项目需要C++17,因此在CMakeLists.txt中我很早就有这样一行: set(CMAKE_CXX_STANDARD 17) 从命令行(cmake),偶尔我想测试一下该项目是否也可以用C++20编译。(以避免意外)。 如何选择从命令行使用C++20编译? 如果我这样做cmake -DCMAKE_CXX_STANDARD=20,则它稍后会被配置覆盖,而不是17 ..
发布时间:2022-05-16 21:58:48 C/C++开发

为什么我们需要CMake?

我不明白,为什么我们需要cmake来构建库?如果我的问题很愚蠢,我很抱歉,但我需要在Widnows上使用一些库,无论我选择什么库,我都需要用cmake来构建和/或编译它。它是用来做什么的?为什么我不能只#将我需要的东西包含到我的项目中,这样它就可以与我的项目同时编译/生成? 此外,有时我需要安装Ruby、Perl、Python所有这些特定版本,以便cmake可以构建库……我为什么需要这些程序,我 ..
发布时间:2022-05-08 21:20:59 其他开发

如何让CMake自动检测CUDA_COMARTURATIONS的值?

CMake的较新版本(3.18及更高版本)了解CUDA代码编译所针对的CUDA体系结构的选择。目标具有CUDA_ARCHITECTURES属性,当设置该属性时,将为您生成适当的-gencode arch=whatever,code=whatever编译选项。如果您不设置此值,您甚至会收到警告: CMake Error in CMakeLists.txt: CUDA_ARCHITECTUR ..
发布时间:2022-04-25 14:19:29 其他开发

运行LLVM示例时出现问题

我在这件事上挣扎的时间比我愿意承认的要长,我真的很感激你的帮助。 我正在尝试做一个涉及构建链接器和调度器的项目,我想如果我可以使用LLVM中已经构建的一些功能,那就太好了。我使用的是LLVM10。为了开始,我阅读了一些内容,并尝试构建this示例。因为我计划将LLVM嵌入到另一个项目中,使用this作为“如何构建”该示例的参考(见下文)。我认为依赖项只是示例CMakeLists.txt中的组 ..
发布时间:2022-04-15 20:34:04 C/C++开发

从GCC切换到g++进行交叉编译时,C使链接器未定义引用(&Q)

我有一个编译成功的C项目。现在我想在同一个项目中使用C++代码,所以我将main.c重命名为main.cpp。该项目是针对嵌入式微控制器的,因此我正在使用arm-none-eabi工具链进行交叉编译。 将主文件重命名为.cpp后,出现以下错误: Linking CXX executable discovery_simple_test.elf /usr/lib/gcc/arm-none- ..
发布时间:2022-04-10 13:41:31 C/C++开发

Cmake无法正确生成简单解决方案[Windows 10]

Cmake 3.15 32位 Assimp 4.1.0 你好,我在cmake和assimp方面遇到了一些困难。在过去的几天里,我一直在尝试通过cmake为CodeBlock生成一个简单的工作区。 我已尝试使用CMD和Cmake GUI方法生成解决方案,但未获得令人满意的结果。 在图形用户界面中,遵循生成项目的标准过程,然后定义适当的源路径和目标路径,并选择适当的生成器(Code ..
发布时间:2022-04-10 09:06:35 C/C++开发

隐藏可传递的外部依赖项/将库与CMake相结合(&H)

这个问题可能部分重复,例如this question,但更多的是关于如果有更好的解决方案的话是什么。由于此问题结束时相当长,我用";+q+ 标记了特定问题。 我有这样的情况,我写了一个小库B,它依赖于其他一些大型项目A拆分成许多库A1, A2, ..., An,我的库有一些依赖于这些库,另一些不依赖于这些库。做正确的链接有点麻烦。这个库开始被其他人使用,我想避免每个人都经历这个糟糕的链 ..
发布时间:2022-04-08 20:16:32 C/C++开发

如何使用CMake将我自己的.o文件与第三方静态库合并,以创建新的合并后的静态库?

我的公司销售依赖于NVIDIA CUDA工具包的商业Linux应用程序。然而,我们的许多客户在他们的计算机上没有超级用户访问权限,并且无法自己安装CUDA,因此我们希望将CUDA静态库与我们的应用程序捆绑在一起。 我们的法律部门表示,我们需要实际将库的内容包含在我们应用程序的一个现有静态库中,而不是仅将CUDA静态库作为单独的文件提供。我可以手动创建这样一个合并库,它工作得很好: li ..
发布时间:2022-04-08 20:05:51 其他开发

Cmake将命令行参数添加到二进制文件

我通过cmake/CMakeLists.txt创建二进制文件myBinary。 我希望在我的二进制文件中“包含”默认选项。 换句话说,我希望使用myBinary --option myopt调用我的二进制文件,即使我只运行./myBinary 我如何才能做到这一点? 推荐答案 CMake没有为您要执行的操作提供内置支持。 一种解决方案是按照@Youka所说的做- ..
发布时间:2022-04-05 18:10:49 服务器开发