问题标签 [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 投票
3 回答
6343 浏览

cmake - 是否有任何实用程序可以重新格式化 cmake 文件

我有相对复杂的 cmake 文件,我想知道是否有任何实用程序可以重新格式化 cmakeList.txt 并美化它以便于阅读?

一些简单的技巧可以完成这项工作,例如缩进 if else endif 部分等等。

有没有这样的工具?

我是用notepad++编辑的,但是如果有其他工具我可以切换。

0 投票
1 回答
6500 浏览

cmake - 使用 Clang-Format 格式化 CMakeLists.txt

有没有办法让clang-format正确格式化 CMake 文件?

我有一个.clang-format文件Language: CppBasedOnStyle: Google. 没有指定其他语言。

理想情况下,我想自定义样式,但是现在最大的问题是,clang 格式缩进了很多行。文件越长,我得到的缩进级别就越多。

问题:

  1. 有没有办法让 clang-format 将 a 识别为与CppCMakeLists.txt不同的语言?
  2. clang-format 是否可以让我为 CMake 语言添加规则?
  3. 在这种情况下是否存在 clang-format 的替代方案?

例子

输入

实际输出

预期输出:与输入相同。或者命令和括号之间可能没有空格。

0 投票
0 回答
19 浏览

cmake - 不同子目录中的相同库名称:在父级调用 `add_subdirectory` 时发生冲突

简单的文件夹结构就像

假设我add_library(SubDirLib fooX.cpp)SubA/CMakeLists.txt其中X 分别是 A 和 B ,SubB/CMakeLists.txt我如何链接两个库SubA/SubDirLib和?请注意,如果我打电话,它将是名称冲突SubB/SubDirLibRoot/CMakeLists.txt

Root/CMakeLists.txt

0 投票
1 回答
3560 浏览

linux - CMake 错误“包含找不到加载文件:FetchContent”

cmake在 Ubuntu 上执行命令时出现以下错误。CMake 版本 - 3.10.2。

以下是第CMakeLists.txt1 行的内容。31:

我是新手,今天才开始使用 CMake。如果我在 CMake 中做错了什么和/或遗漏了什么,请告诉我。

include(FetchContent)在 Ubuntu 上支持 CMAke 版本 - 3.10.2。

0 投票
0 回答
44 浏览

visual-studio - 如何在 CMake 中正确链接外部库的路径?

在 CMakeLists.txt 中,如果我将 .lib(静态库)文件路径定义为绝对路径,则它工作正常。但如果我定义与相对路径相同,则会引发错误。如何在没有硬编码的情况下解决它?

文件结构:

这种方式工作正常:

这种方式会引发错误:

我的 CMakeLists.txt 路径:D:\Rohit\Sandbox\demo\src\abc\CmakeLists.txt

这是我得到的错误:链接:致命错误 LNK1104:无法打开文件 '\lib\foo.lib'

另外,如果我想包含其他文件夹中的 .lib 文件(假设 foo2.lib 文件存在于工作区的 xyz 文件夹中),如何定义它?

0 投票
0 回答
98 浏览

c++ - 如何将库编译到 lib/ 文件夹中?

这是我作为开发人员第一次使用 CMake,我想为我的项目编译一些库到 lib/ 文件夹中。

我在 Ubuntu 18.04 LTS 上并从命令行运行 CMake。

我希望使用 2 个库:

(我也在使用 TCLAP,但这完全是在头文件中实现的。)

我知道并正在使用标准文件夹布局(bin/build/include/src/等)。

这些库(尤其是 libnbt++)是针对这个项目的,我不想全局安装它们。如何将它们编译到我的lib/文件夹中?

0 投票
1 回答
219 浏览

c++ - 链接库作为cmake工具链文件中标志的一部分

我试图添加PROFILECMAKE_BUILD_TYPES. 为此,我需要添加-finstrument-functionsCMAKE_CXX_FLAGS工具链文件中,并将所属库与 CMakeLists.txt 中的绝对路径通过target_link_libraries. 到目前为止,一切都很好,没有问题。

但是在刷新构建信息时,cmake 会检查编译器是否仍然有效。而现在“无法编译简单的测试程序”,由于缺少所需的库,该库稍后在 CMakeLists 中链接。

所以我评论了这个-finstrument-functions标志并且可以编译测试程序。

我尝试过: - 使用 -L -l 将库和路径设置为 CXX 标志的一部分:

  • 使用link_directories(<dir>)命令以及SET(CMAKE_LINK_DIRECTORIES_BEFORE <Path> )SET(CMAKE_LIBRARY_PATH <Path>)

  • 在工具链文件中设置变量,稍后在 cmakelists 中调用它们:

但随后得到错误:mingw32-make.exe[3]: *** No rule to make target 'C:/qnx700/target/qnx7/armle-v7/usr/liblibprofilingS.a', needed by '../out/profileout'. Stop.

有没有人有更多的想法?提前致谢。

0 投票
0 回答
218 浏览

c++ - 在 MacOS 上使用 CLion 编译 32 位 C++ 程序

我在 Mac OSX 10.14 上运行的 CLion 中的 CMake 文件遇到问题。目前,我使用讲师构建的“supplied.o”文件从 Linux 服务器复制的 32 位程序具有以下内容。我想在 CLion 中工作,想知道是否可以添加到 CLion 以在 Linux 服务器之外工作?

我试着在这里四处寻找,看看我是否能弄明白,但可能我没有 32 位 G++ 库(是 i386 吗?)并且不太确定如何安装它。我有自制软件,并且对 Linux 感到很舒服,可以在那里工作,但我喜欢 CLion,因为它可以快速获得想法。感谢任何人都可以提供的任何帮助!

0 投票
0 回答
94 浏览

cmake - 每次迁移到相同的新硬件时,如何避免重建 15GB-8 小时长的 PCL 库?

我正在使用 Jetson TX2 板来处理 PCL 和 GPU。由于任何 apt-repos 上都没有 GPU 子系统,因此我被告知每次迁移到新系统时都要从源代码构建它们。

由于所有硬件都是相同的,我怎样才能将最初在其他系统上构建的相同 PCL 库复制到新系统并直接开始使用?我不断收到 CMAKE 错误:

解决方法是什么?

0 投票
1 回答
1233 浏览

cmake - 无法使用 host=x86 或 -A Win32 为 Visual Studio 2019 生成 32 位配置

我正在尝试将 cmake 配置为分别构建 32 位和 64 位...

到目前为止 64 位很容易,因为我只需要添加 -A x64

但我无法设置 32 位拱门。官方文档建议 -A Win32 或 -T host=x86
https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2016%202019.html
即使使用它们我也无法设置 x86 主机

我试过的:

没有任何效果,这是我一直在获取的日志...