-1

当我按下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 构建标志: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

#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 -- 损坏

4

2 回答 2

0

您可能需要重新安装 lib

mingw-get install --reinstall mingw32-libiconv-dll

我有一个非常相似的问题,它是通过这种方式解决的。

于 2020-06-29T18:49:54.217 回答
0

我想我已经找到了答案。至少它对我有用。

显然我需要在另一台机器上以管理员身份运行 CMake 。这样我假设它可以正确访问 GCC 文件。但是,我不完全确定为什么在另一台机器上不需要它并且工作得很好。

于 2016-08-31T20:57:31.277 回答