У меня есть странная проблема с CMake при нажатии кнопки Configure
.Отчеты CMake разбиты g ++ и отсутствуют libiconv-2.dll
Он сообщает мне все время, что отсутствует libiconv-2.dll
и не удалось завершить операцию. Однако эта библиотека присутствует в папке MinGW/bin.
Я использую CodeBlocks-MinGW Makefiles и CMake версии 3.6.1 - 32-разрядную версию (хотя эта же проблема с 64-разрядной версией). Одна интересная вещь в том, что в Consol он показывает:
The CXX compiler identification is unknown
Check for working CXX compiler: C:/MinGW/bin/g++.exe
Check for working CXX compiler: C:/MinGW/bin/g++.exe -- broken
MinGW корректно добавляется к системному пути, и я был в состоянии проверить версию (GNU 4.8.1), а также скомпилировать простой привет мир из командной строки с помощью:
g++ test.cpp -o test
Тестирование это же CMakeLists файл на другой машине с той же конфигурацией, но старше CMake версии 3.2.3 все работает. Выполняя некоторые исследования в Интернете, я обнаружил, что проблема с этим файлом не нова, поэтому я сомневаюсь, что это проблема с версией.
Кто-нибудь знает, что можно сделать больше?
EDIT 1 Это содержание CMakeError.log
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. Compiler: C:/MinGW/bin/g++.exe Build flags: Id flags:
The output was: 1
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. Compiler: C:/MinGW/bin/g++.exe Build flags: Id flags: -c
The output was: 1
Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler": g++.exe: fatal error: no input files compilation terminated. Determining if the CXX compiler works failed with the following output: Change Dir: C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp
Run Build Command:"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.exe 1 : Entering directory 'C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp'
Building CXX object 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: recipe for target 'CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj' failed
mingw32-make.exe 1 : *** [CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj] Error 1
mingw32-make.exe 1 : Leaving directory 'C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp'
Makefile:125: recipe for target 'cmTC_c9a03/fast' failed
mingw32-make.exe: *** [cmTC_c9a03/fast] Error 2
Я вручную скомпилирован файл testCXXCompiler.cpp
с г ++, и она работала. Во время компиляции не было ошибок.
EDIT 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)
У меня есть еще проблемы с отсутствующими библиотеки. Консольный выход немного изменился, и теперь он составляет:
The C compiler identification is unknown
The CXX compiler identification is unknown
Check for working C compiler: C:/MinGW/bin/gcc.exe
Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken
Похож на сломанную установку MinGW. – usr1234567
@ usr1234567 Я сомневаюсь, что, поскольку я могу скомпилировать с MinGW в каждом другом случае - из командной строки, из Code :: Blocks – sebap123
Можете ли вы скомпилировать тестовую программу CMake в файле CMakeError.out с той же командой, что и там? – usr1234567