问题标签 [cmake-gui]

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 投票
0 回答
230 浏览

c++ - 无法从 Visual Studio 的 xx.vcproj 文件创建 xxd.lib 文件

我生成了将 openCV 和 openCV_contrib 配置为 Cmake-gui 程序源的构建文件。当我通过 Visual Studio 2013 64 位启动 opencv.sln 时,无法创建一些 opencv 核心库。(即highgui310d.lib)

它在底线通知“构建失败”并给出类似错误:

链接:致命错误 LNK1104:无法打开文件 '....\lib\Debug\opencv_highgui310d.lib'

构建开始:项目:opencv_highgui,配置:调试 x64

链接:致命错误 LNK1104:无法打开文件 'ws2_32.lib'

构建开始:项目:opencv_test_highgui,配置:调试 x64

链接:致命错误 LNK1104:无法打开文件 '....\lib\Debug\opencv_highgui310d.lib'

当我查看目录 "lib\Debug" 时,我可以看到一些库已创建,但有些库无法创建,导致上述错误。

另外,当我在构建解决方案后编译 test_main.cpp og highgui 模块时,visial studio 会给出如下提示:

无法启动程序

“..openCV/build/modules/highgui/x64/Debug/ALL_BUILD。”

拒绝访问。

我重新安装了很多次,并注意创建的文件与 x64 和 vs2013 64 位的兼容性。

我能做些什么来解决这个问题?

0 投票
2 回答
1407 浏览

windows - CMake 报告损坏的 g++ 和缺少 libiconv-2.dll

当我按下Configure按钮时,我对 CMake 有一些奇怪的问题。

它一直报告我libiconv-2.dll丢失并且无法完成操作。但是,这个库存在于 MinGW/bin 文件夹中。

我正在使用 CodeBlocks-MinGW Makefiles 和 CMake 版本 3.6.1 - 32 位版本(尽管同样的问题是 64 位版本)。一件有趣的事情是,它在 consol 中显示:

CXX 编译器标识未知

检查工作的 CXX 编译器:C:/MinGW/bin/g++.exe

检查工作的 CXX 编译器:C:/MinGW/bin/g++.exe -- 损坏

MinGW 已正确添加到系统路径中,我能够检查版本(GNU 4.8.1)并使用以下命令从命令行编译简单的 hello world:

在另一台具有相同配置的机器上测试相同的 CMakeLists 文件,但旧的 CMake 版本 3.2.3 一切正常。在网上做了一些研究,我发现这个文件的问题并不新鲜,所以我怀疑这是版本问题。

任何人都知道可以做更多的事情吗?

编辑 1 这是 CMakeError.log 的内容

编译CXX编译器识别源文件“CMakeCXXCompilerId.cpp”失败。编译器:C:/MinGW/bin/g++.exe 构建标志:Id 标志:

输出为:1

编译CXX编译器识别源文件“CMakeCXXCompilerId.cpp”失败。编译器:C:/MinGW/bin/g++.exe 构建标志:Id 标志:-c

输出为:1

使用“”检查 CXX 编译器是否为 IAR 与“IAR .+ Compiler”不匹配:g++.exe:致命错误:没有输入文件编译终止。确定 CXX 编译器是否工作失败,输出如下: Change Dir: C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp

运行构建命令:"C:/MinGW/bin/mingw32-make.exe" "cmTC_c9a03/fast" C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\cmTC_c9a03.dir\build.make CMakeFiles/cmTC_c9a03。目录/构建

mingw32-make.exe 1 : 进入目录'C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp'

构建 CXX 对象 CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj

C:\MinGW\bin\g++.exe -o CMakeFiles\cmTC_c9a03.dir\testCXXCompiler.cxx.obj -c C:\Users\testuser\Desktop\build\CMakeFiles\CMakeTmp\testCXXCompiler.cxx

CMakeFiles\cmTC_c9a03.dir\build.make:64:目标“CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj”的配方失败

mingw32-make.exe 1:*** [CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj] 错误 1

mingw32-make.exe 1:离开目录'C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp'

Makefile:125: 目标“cmTC_c9a03/fast”的配方失败

mingw32-make.exe: *** [cmTC_c9a03/fast] 错误 2

我已经testCXXCompiler.cpp用 g++ 手动编译了文件并且它工作正常。编译过程中没有错误。

编辑 2

我创建了SSCCE来测试问题是否与某些依赖项或其他与代码相关的事物无关。但是测试这个文件:

测试.cpp

CMakeLists.txt

我仍然有缺少图书馆的问题。控制台输出略有变化,现在是:

C 编译器标识未知

CXX 编译器标识未知

检查工作的 C 编译器:C:/MinGW/bin/gcc.exe

检查工作的 C 编译器:C:/MinGW/bin/gcc.exe -- 损坏

0 投票
1 回答
80 浏览

node.js - 使用 CMake 在 Windows CE 上交叉编译节点 js

我正在Windows CE6-ARM上交叉编译节点js,遇到了很多麻烦。

我在某处读到 CMake 可以使该过程稍微复杂一些。

我无法找到有关如何使用 Cmake 为 Windows CE 编译节点 js 的任何资源

任何形式的帮助表示赞赏。

0 投票
1 回答
4136 浏览

cmake - 为什么 CLI 在一个命令中完成所有操作时 GUI 配置和生成中有两个按钮

我知道 cmake 是构建生成器。这意味着它可以根据 CMakeLists.txt 的指令生成适当的构建(makefile、Visual Studio 项目等)。但我不明白我猜是相关的两件事:

  1. 为什么 cmake-gui 中有两个按钮“配置”和“生成”?在我读过的命令行教程(例如这个)中,通常的过程是用一个cmake命令完成的。

  2. cmake世界中的缓存是什么?AFAIK 是按下“配置”按钮但未按下“生成”按钮时的状态。但这为什么有用?按“配置”后弹出的所有这些变量是什么意思?为什么我应该编辑它们?唯一允许的配置不是通过 CMakeLists.txt 完成吗?

谢谢

0 投票
1 回答
957 浏览

c++ - 在 cmake-gui 中修改变量

据说要为每个构建(调试和发布)运行 cmake,建议将CMAKE_BUILD_TYPE其作为参数传递给cmake, 例如cmake -DCMAKE_BUILD_TYPE=Release ..cmake -DCMAKE_BUILD_TYPE=Debug ..cmake-gui 中的 this 等价物是什么?当我按“配置”时,窗口中会弹出一些变量,在这里我将创建一个新变量CMAKE_BUILD_TYPE=Debug,然后按“生成”这相当于上述命令行传递吗?

谢谢

0 投票
1 回答
8205 浏览

cmake - 使用调试符号和 cmake 编译项目的正确方法

CMAKE_BUILD_TYPE当我想获取调试或发布项目构建时,建议将这里作为参数传递给 cmake。我正在尝试用 cmake 编译libharu,我想用调试符号编译它。我搜索了libharu中包含的 CMakeLists.txt 中的以下字符串:

但我什么也没找到。我的问题是,如果指定libharuCMAKE_BUILD_TYPE的 CMakeLists.txt何时没有提及它是否有意义?如果没有,我如何使用调试符号编译libharu ?

PS:我注意到使用 cmake 为 Visual Studio 2013 生成的项目设置了 Debug/Win32,这就足够了吗?在 CMakeLists.txt 的什么地方指定了这个信息?

PPS:我想这个问题很大程度上取决于特定的项目,但一般来说有什么方法可以做到这一点吗?我的意思是,CMAKE_BUILD_TYPE=Debug总是创建调试版本还是我应该注意的其他事情?

谢谢

0 投票
1 回答
581 浏览

cmake - 为什么需要在 cmake 中为多配置生成器指定架构

我知道CMAKE_BUILD_TYPE这只适用于像 Unix Makefiles 这样的单一配置生成器。还有像 Visual Studio 或 Xcode 这样的多配置生成器CMAKE_BUILD_TYPE不起作用。(有关更多信息,请参阅问题和问题)。我已经为libharu生成了带有 cmake-gui 的 Visual Studio 2013 x86 项目,并且在 Visual Studio 中无法从 win32 切换到 x64。我想知道为什么在多配置中需要在 cmake 中指定架构(x86 或 x64)?为什么不能直接在 Visual Studio 中使用?是否有一些限制或好处或我应该注意的事情?

谢谢

0 投票
1 回答
1059 浏览

c - OS X:CMake 忽略 CMAKE_C_COMPILER

我正在尝试在我的 OS X 10.11.6 笔记本电脑上构建Trilinos并不断遇到以下问题:CMake 使用 Apple 的 Clang 而不是 GCC

尽管我在调用中将 gcc/g++ 地址作为参数传递:

我分别安装了 GCC 和 G++:

UPD 如果有人感兴趣,我已经放弃并将开发转移到 ubuntu。如果你有办法做到这一点,请在下面评论

0 投票
2 回答
3657 浏览

openssl - CMake 错误:找不到 OpenSSL

我的目标:

我正在尝试将 Mosquitto 代理配置为使用 websockets。

警告和错误:

https://docs.google.com/document/d/1HJ75NO1wBsnNfFFszeXP4p8re7m4gTE_CMbFoSswJJs/edit?usp=sharing

软件:

  • 视窗 10 x64
  • libwebsockets-master
  • Cmake 3.6.2 win32
  • OpenSSL 1.1.0a
  • Visual Studio 14 2015(带有 C++ 编译器)

我试过的:

我正在使用 CMake gui,因为我不太熟悉这些命令。我配置源和目标并将以下变量分别设置为路径和文件路径:

  • OPENSSL_ROOT_DIR = OpenSSL-Win32
  • OPENSSL_LIBRARIES = OpenSSL-Win32/libOpenSSL-Win32/lib/openssl.lib
  • OPENSSL_CONF = bin\openssl.cfg
  • OPENSSL_INCLUDE_DIR = OpenSSL-Win32/include/openssl

我也尝试在 libwesocket 的 CMkakeLists.txt 文件中设置 OPENSSL_LIBRARIES。我使用了多个不同版本的 CMake 和 OpenSSL。我尝试使用 VS 命令行(以管理员身份)打开 CMake。

我以前使用过时的 OpenSSL构建了一个.sln文件,因此编译器没有问题。

我已经查看了这里这里这里这里的问题。如果归结为使用命令行专门设置​​ OPENSSL_ROOT_DIR,有人可以对此有所了解吗?

0 投票
2 回答
6711 浏览

cmake - 如何通过 CMake 使用 MinGW gfortran 构建/编译 Fortran?

除了以下问题,我还需要用 CMake 解决更多问题,但这是我仍然无法解决的第一个也是最简单的问题。我已经搜索了互联网,甚至从朋友那里借了“掌握 CMake ”一书,但我仍然度过了最艰难的时光......关于 CMake、Fortran 和 MinGW 甚至组合的很多东西都存在于网上一次两个。但是这三者加起来似乎几乎不存在。

我想要做的(此时)是使用 MinGW 的 gfortran 编译器在 Windows 上使用 CMake 构建和编译一个简单的 Fortran 程序。

...而且我是 CMake n00b。

到目前为止,这是我一直在使用的:

CMakeLists.txt:

测试.f90:

我有 MinGW 的 MSYS2 版本,因为这是我最终要编译的代码将在 Windows 上编译的唯一版本。(即,当我在 MSYS2 shell 中使用我自己的 Makefile 编译它时,它会编译。)

我的 Windows 路径附加了;C:\msys64\mingw64\bin. (我也试过;C:\msys64\usr\bin,但它抱怨sh.exe在同一个目录中,以及其他问题。)

然后我打开 CMake-GUI,加载上面的 CMakeLists,点击配置,将项目的生成器指定为“MinGW Makefiles”,选择“使用默认的本机编译器”,得到以下输出:

然后我再次单击配置并获得:

然后生成:

在我的构建目录中,有一个 Makefile 和许多其他文件和目录。

我尝试在 MSYS2 shell 中运行 make,我得到了这个:

最后一行是提示。如果我输入类似make它似乎再次运行它的内容,它只会在提示中再次显示提示。如果我按 Ctrl+C,它会杀死它并返回到正常的 MSYS2 提示符。

所以我无法弄清楚如何实际制作它,假设我什至正确地完成了 CMake 部分。

问题:在我列出的约束条件下,如何让这个示例代码构建/编译/运行?

(一旦我通过了这部分,我实际上更愿意做的是让它与 Visual Studio 13 一起工作,因为我有一个用 CMake 构建的 C++ 项目(主要由我对问题的访问权限有限的其他人编写我希望能够从中调用我的 Fortran库。我知道从 VS 编辑 Fortran 的可能性不大,我对此不感兴趣。)

以下是生成的内容Makefile(请注意,当我在这里复制时,我的编辑器将制表符替换为空格):

版本信息:

  • GNU Fortran (GCC) 5.3.0
  • Windows 7 企业版
  • Cmake 3.5.2
  • MSYS2 - 我不知道如何找到这个版本
  • MinGW - 我不知道如何找到这个版本

在搜索过程中,我在网上浏览了很多不同的页面,我并没有费心去跟踪它们,但是这个特别是我经常遇到的一个,因为它似乎与标题非常相关,但是实际问题和解决方案完全不是: