问题标签 [cmake-format]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
45 浏览

c++ - 如何制作只有一个 cpp 文件和两个 .h 文件的 CMakeLists?

我有一个名为 proj10.cpp 的文件和两个不同的 .h 文件,它们位于包含文件夹中,而 .cpp 文件位于 src 文件夹中。我不知道如何制作 CMake 文件,因为我做过的其他文件有多个 .cpp 文件。

0 投票
1 回答
290 浏览

cmake - 为 riscv64-unknown-elf-g++ 编译 cmake 时如何出错

当我从终端 cmake .. 时,错误如下所示:

我尝试了“STREQUAL”而不是 MATCHES,但没有奏效。知道这里可能有什么问题吗?

CMakeLists.txt 如下:

我还尝试在 g++ 退出的地方以及 - where - 存在的地方添加 ++。并且也厌倦了“STREQUAL”而不是“MATCHES”,它也不起作用。可能是PATH中c++的问题?

0 投票
0 回答
145 浏览

cmake - CMake:仅针对特定目标从 CMAKE_C_FLAGS_RELEASE 中删除编译标志

我有

但我想删除-flto特定目标编译:

可能吗?

0 投票
1 回答
395 浏览

linux - 将环境变量设置为 ExternalProject_Add 上下文

我有一个 CMakeLists.txt 文件,其中有多个我需要构建的外部项目。我正在使用 CMake 的 ExternalProject_Add 功能。

我需要在 ExternalProject_Add 项目模块之一中设置环境变量。该项目需要它来执行构建。

我尝试使用 ${CMAKE_COMMAND} -E env 选项,但没有奏效:

我无法在网上找到示例。

请指教。

提前感谢您的帮助。

副部

0 投票
1 回答
545 浏览

c++ - 如何在cmake中的项目之间添加_dependencies

我有一个如上所述的 CMakeLists.txt。正在尝试构建项目 abc。但要构建它,我还需要“a_certain_source_file.cpp”,它是来自另一个名为 xyz 的项目的自动生成的源文件。如果 xyz 是从同一个 CMakeLists.txt 构建的,那么 add_dependencies 工作不会有问题。我无法通过我现在拥有 CMakeLists.txt 的方式解决对“a_certain_source_file.cpp”的依赖。任何可以提供帮助的 CMake 爱好者或专家?

我在这里也看到了一个密切的匹配 - cmake: add_dependencies 不适用于外部项目,但我不需要下载任何东西。所以不确定这是否是我需要的。

0 投票
1 回答
55 浏览

c - 如何创建需要外部头文件的 cmake 库

我觉得我错过了这个的一些关键想法。

我有一个库,我想为其创建一个 CMakeLists.txt 文件。我想将它与不同的应用程序链接起来。

该库需要conf.h定义一个文件。应用程序必须提供这一点。图书馆期待它。这种关系叫什么?

我目前的解决方案CMakeLists.txt是有一个变量,如:

然后让应用程序定义 CONF_DIR。这很不酷,因为我不能有多个应用程序链接它。

唯一的另一种选择是将整个源库的副本保留在应用程序文件夹中,这也很不酷。

我希望最大限度地提高可重用性。我该如何处理?

旁注:对于任何熟悉的人,有问题的库是 STM32Cube 的 HAL 库,讨厌的文件是stm32h7xx_hal_conf.h.

在此处输入图像描述

0 投票
0 回答
70 浏览

cmake - cmake中的打印接口库

如何在cmake中打印接口库。实际上我想这样做是出于调试目的。所以想知道如何打印该接口库中的所有包含目录

我有一个接口库 A,它链接到 2 个接口库 B 和 C(即 A 包括 B 和 C)。现在我想知道 A 是否包含所有路径不是..如何检查?

0 投票
0 回答
33 浏览

c++ - collect2:错误:ld 在 CMakeLists.txt 中返回 1 个退出状态链接库问题

当我使用 构建项目时CMakeLists.txt,出现以下错误。

我还需要添加CMakeLists.txt什么?

0 投票
0 回答
23 浏览

c++ - CMAKE_C_FLAGS 在子目录中附加标志

我有以下文件夹结构:

  • 父文件夹
    • CMakeLists.txt (一)
    • Sub_1_folder
      • CMakeLists.txt (B)
    • 子_2_文件夹
      • CMakeLists.txt (C)

现在,在 CMakeLists.txt (A) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTrial ")

在 CMakeLists.txt (B) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTrail2")

在 CMakeLists.txt (C) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTrail3")

但是,在代码末尾,当我在 CMakeLists.txt (A) 中打印 CMAKE_C_FLAGS 时,它只显示 DTrail。

该怎么做才能使 DTrail2 和 DTrail3 (子目录中的更改:似乎它们仅在各自的子文件夹中具有范围)反映在 CMakeLists.txt (A) 的 CMAKE_C_FLAGS (父级)中。

有什么方法可以进行全局更改吗?

请帮助我!

0 投票
3 回答
82 浏览

cmake - Cmake字符串从包含用冒号分隔的键值的字符串列表中获取键值对

我有一个字符串列表(输入):

我想使用 foreach 获取键值并将它们设置为 cmake 常量。就像是:

所以基本上我想要最终结果,但这应该使用forloop来实现:

如何通过使用foreach导航列表中的每个字符串并将键值对设置为 cmake 常量来实现这一点?