问题标签 [cmake]
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.
build-automation - 如何使用 cmake 包含目录的所有文件?
我想尝试 CMake 来管理一个新的 C++ 项目。但是,有些文件是自动生成的。我无法知道生成文件的名称。我唯一知道的是这些文件都是在 foo/ 目录下生成的。有没有办法让 CMake 包含 foo/ 中的所有 .cpp 文件?
谢谢你。
visual-studio - 防止在 cmake GUI 中显示变量
我想将硬编码的CMAKE_CONFIGURATION_TYPES限制为仅RELEASE和DEBUG。如果我在 Windows 上执行 cmake GUI 以创建 Visual Studio 构建,则 CMAKE_CONFIGURATION_TYPES 与其他 cmake 变量一起存在。
如何从 GUI 中删除 CMAKE_CONFIGURATION_TYPES?
谢谢迪玛
c++ - 列出 cmake 生成的 Visual Studio C++ 项目中的头文件
我正在为我们的产品构建一个基于 cmake 的构建系统。问题是 cmake 生成的 Visual Studio 项目不会在解决方案浏览器中显示头文件。
我需要在 CMakeList.txt 中添加什么来列出头文件?首选的解决方案是不需要列出每个特定的头文件。
解决方案 这是我带来的解决方案:
谢谢
linux - cmake源和源外导航
cmake 建议使用源外构建。虽然总的来说我喜欢这个想法,但我发现从源代码外的子目录导航到相应的源目录并不方便。我经常需要代码来使用代码执行一些操作(例如 grep、svn 命令等)。
shell中是否有一种简单的方法可以从源代码外的子目录导航到相应的源目录?
谢谢迪玛
windows - 告诉 Visual Studio 在运行可执行文件时创建一个 utf-8 环境
我正在使用带有 CTEST 的 CMAKE 来运行我的回归。我的应用程序是一个控制台应用程序,它以它的环境呈现的任何编码输出(Tcl 的一个特性)。
我如何告诉 Visual Studio 当它运行我的应用程序以在 utf-8 环境中运行它时。现在我的回归结果是用拉丁文编码的,因此很难与我的 linux 版本上的回归进行比较。
build - 使用 cmake,您将如何禁用源内构建?
我想禁止人们将我们的源代码树与生成的 CMake 文件混在一起……更重要的是,禁止他们踩到Makefiles
不属于我们使用 CMake 的同一构建过程的现有内容。(最好不要问)
我想出的方法是在我的顶部有几行CMakeLists.txt
,如下所示:
但是,这样做似乎太冗长了。此外,如果我尝试进行源内构建,它仍然会在引发错误之前创建CMakeFiles/
目录和CMakeCache.txt
源树中的文件。
我错过了更好的方法吗?
c++ - Eclipse CDT 5.x 和 cmake 2.6.x
据我所见,cmake 2.6.x 支持 CDT 4.x。我们已经有了 CDT 6.x。CDT 5.x 和 cmake 2.6.x 至少兼容吗?
谢谢迪玛
cmake - CMake ... ccmake 还是 cmake?
cmake
和 和有什么不一样ccmake
?我安装了 Ubuntu 软件包cmake
,在我的 Windows 计算机上,我有来自网站的安装程序,但都没有ccmake
可用的命令。然而,教程似乎经常引用它。
似乎ccmake
在 Unix 上是CMakeSetup
在 Windows 上(这是安装程序)。但我对此有点困惑;它只是手动输入您自己的CMakeLists.txt
文件的替代方法吗?
cmake - 在多部分 cmake 项目中获取源代码构建的正确方法
我使用 cmake 来构建、测试和安装我的项目。我的方法有点粗糙:我使用这样的脚本来获取源外构建:
我想我至少可以把它放到makefile中,但是使用Makefile运行cmake来生成新的Makefile并运行另一个make不是很奇怪吗?
正确的方法是什么?cmake 是否可以选择避免调用“cd”?
最近它变得更加复杂,因为我提取了一个我想单独编译、测试和分发的库。我想避免重复我在顶级 CMakeLists.txt 中的所有内容。
如何用cmake正确地做到这一点?
c++ - CMake 构建模式 RelWithDebInfo
我认为我了解 Release 和 Debug 构建模式之间的区别。主要区别在于在调试模式下,生成的可执行文件没有经过优化(因为这可能会使调试更加困难)并且包含调试符号。
在构建 PCRE(WinMerge 的外部依赖项之一)时,我注意到了一种我以前从未见过的构建模式:RelWithDebInfo。
这里提到了 Debug 和 RelWithDebInfo 之间的区别:http ://www.cmake.org/pipermail/cmake/2001-October/002479.html 。摘录:“RelwithDebInfo 与 Release 模式非常相似。它生成完全优化的代码,但也构建程序数据库,并插入调试行信息,让调试器有机会随时猜测您在代码中的位置。”
这听起来像是一个非常好的主意,但不一定很明显如何设置。此链接描述了如何为 VC++ 启用此功能:http ://www.cygnus-software.com/papers/release_debugging.html
我是否遗漏了什么,或者将所有发布代码编译为 RelWithDebInfo 没有意义?