【发布时间】:2016-08-31 17:25:58
【问题描述】:
当我按下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:
g++ test.cpp -o test
在另一台具有相同配置的机器上测试相同的 CMakeLists 文件,但旧的 CMake 版本 3.2.3 一切正常。在网上做了一些研究,我发现这个文件的问题并不新鲜,所以我怀疑这是版本问题。
有人知道还有什么可以做的吗?
编辑 1 这是 CMakeError.log 的内容
编译CXX编译器识别源文件 “CMakeCXXCompilerId.cpp”失败。编译器:C:/MinGW/bin/g++.exe 构建 标志:标识标志:
输出为:1
编译CXX编译器识别源文件 “CMakeCXXCompilerId.cpp”失败。编译器:C:/MinGW/bin/g++.exe 构建 标志:ID标志:-c
输出为:1
检查 CXX 编译器是否为 IAR 使用 "" 不匹配 "IAR .+ 编译器”:g++.exe:致命错误:没有输入文件编译 终止。确定 CXX 编译器是否工作失败 以下输出:更改目录: 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.dir/build
mingw32-make.exe1: 进入目录 '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.exe1: *** [CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj] 错误1
mingw32-make.exe1: 离开目录 'C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp'
Makefile:125:目标“cmTC_c9a03/fast”的配方失败
mingw32-make.exe: *** [cmTC_c9a03/fast] 错误 2
我已经用 g++ 手动编译了文件testCXXCompiler.cpp,它工作正常。编译时没有错误。
编辑 2
我创建了SSCCE 来测试问题是否与某些依赖项或其他与代码相关的事物无关。但是测试这个文件:
test.cpp
#include <iostream>
int main()
{
std::cout << "Test" << std::endl;
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
project(Test)
add_executable(Test test.cpp)
我仍然有缺少库的问题。控制台输出略有变化,现在是:
C 编译器标识未知
CXX 编译器标识未知
检查工作的 C 编译器:C:/MinGW/bin/gcc.exe
检查工作的 C 编译器:C:/MinGW/bin/gcc.exe -- 损坏
【问题讨论】:
-
看起来像是 MinGW 的安装损坏。
-
@usr1234567 我对此表示怀疑,因为我可以在其他所有情况下使用 MinGW 进行编译 - 从命令行,从 Code::Blocks
-
你能编译 CMake 在 CMakeError.out 文件中给出的测试程序吗?
标签: windows gcc cmake cmake-gui