Próbuję skompilować ten (dość skomplikowany) kawałek kodu z cmake i MinGW w Windows:problemy CWprowadä w Windows
#include <iostream>
int main()
{
std::cout << "Test" << std::endl;
return 0;
}
Jest to plik CMakeLists.txt
(który działa poprawnie w systemie Linux):
cmake_minimum_required(VERSION 2.6)
SET(CMAKE_C_COMPILER path/to/gcc)
SET(CMAKE_CXX_COMPILER path/to/g++)
project(cmake_test)
add_executable(a.exe test.cpp)
pomocą polecenia:
cmake -G"MinGW Makefiles" .
Otrzymuję te błędy:
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeMinGWFindMake.cmake:20 (MESSAGE):
sh.exe was found in your PATH, here:
C:/MinGW/msys/1.0/bin/sh.exe
For MinGW make to work correctly sh.exe must NOT be in your path.
Run cmake from a shell that does not have sh.exe in your PATH.
If you want to use a UNIX shell, then use MSYS Makefiles.
Call Stack (most recent call first):
CMakeLists.txt:8 (project)
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file:C:/cmake_test/CMakeFiles/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file:C:/cmake_test/CMakeFiles/CMakeCXXCompiler.cmake
-- Configuring incomplete, errors occurred!
Te błędy nie pomogły mi. Biorąc pod uwagę, że działa on w Linuksie, musi to być coś związanego z konfiguracją Window.
Dziękuję za pomoc!
Konfiguracja:
- Windows 7
- MinGW/GCC 4.6.1
Komunikat o błędzie z CMake jest jasne: Sprawdź, czy nie masz sh na twojej ścieżce. To znaczy: nie uruchamiaj CMake -G "MinGW Makefiles" z monitu MSys. –
Dlaczego posiadanie programu sh.exe na mojej ścieżce jest problemem? – odiszapc
Uruchamiając 'where sh.exe' znalazłem go w' C: \ Cygwin64 \ bin \ sh.exe' i 'C: \ Program Files \ OpenSSH'bin'sh.exe'. W jaki sposób usunąć główne foldery 'Cygwin' i' OpenSSH 'bez ich łamania? – hyprfrcb