使用git for windows进行cmake,MinGW并制作

时间:2016-04-14 20:19:08

标签: cmake mingw

首先,我安装了https://sourceforge.net/projects/mingw/files/的MinGW和mingw32-gcc-g ++以及mingw32-gcc-objs。我已将C:\ MinGW \ bin添加到我的路径中。

其次,我已经为Windows安装了Git(不是很重要,cmd.exe上的结果是一样的。)

第三,我已经安装了完整的软件包" make" http://gnuwin32.sourceforge.net/packages/make.htm

之后,我使用.msi安装了cmake 3.5.1。

但是当我运行cmake ../src时,结果是:

-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:5 (project):
No CMAKE_C_COMPILER could be found.



CMake Error at CMakeLists.txt:5 (project):
  No CMAKE_CXX_COMPILER could be found.

-- Configuring incomplete, errors occurred!
See also "C:/Users/pauka/Dropbox/ETUDE/SRI/S8/STA_Stage/sources/tests/bin/CMakeFiles/CMakeOutput.log".
See also "C:/Users/pauka/Dropbox/ETUDE/SRI/S8/STA_Stage/sources/tests/bin/CMakeFiles/CMakeError.log".

因此cmake无法找到gcc或g ++。但是当我运行gcc -version时,输出很好......我应该为cmake配置什么?

我的CMakeLists.txt是:

# Ajustez en fonction de votre version de CMake
cmake_minimum_required (VERSION 2.8)

# Nom du projet
project (main)

find_package (OpenCV REQUIRED)

# Exécutable "main", compilé à partir du fichier main.cpp
add_executable (tracking_color tracking_color.cpp)
add_executable (feuille feuille.cpp)
add_executable (detect_circles detect_circles.cpp)
add_executable (segmentation segmentation.cpp)
add_executable (watershed_perso watershed_perso.cpp)
add_executable (main main.cpp utils.h)
add_executable (info_coins info_coins.cpp)

# main sera linké avec les bibliothèques d'OpenCV
target_link_libraries (tracking_color ${OpenCV_LIBS})
target_link_libraries (feuille ${OpenCV_LIBS})
target_link_libraries (detect_circles ${OpenCV_LIBS})
target_link_libraries (segmentation ${OpenCV_LIBS})
target_link_libraries (watershed_perso ${OpenCV_LIBS})
target_link_libraries (info_coins ${OpenCV_LIBS})
target_link_libraries (main ${OpenCV_LIBS})

3 个答案:

答案 0 :(得分:2)

好的,对我感到羞耻,

我必须重新启动计算机并在CMake GUI中选择“MinGW Makefile”。单击“配置”,然后单击“生成”。

接下来,你不能使用“Git for windows”,因为有“sh.exe”,这是一个cmake bug。

PS:要使用OpenCV,必须编译它:

cd C:\opencv
mkdir my_build
cd my_build
cmake -G "MinGW Makefiles" ../sources
mingw32-make # took 2 hours on my computer

然后将C:\ opencv \ my_build和C:\ opencv \ my_build \ bin添加到系统路径。

答案 1 :(得分:0)

您可以尝试设置manually the cxx path,请参阅链接中的CMAKE_C_COMPILER,该链接会告诉您更多或更少的链接:

CXX=C:\path\to\g++ cmake ..

但是,我建议你看看为什么cmake不能识别你的cxx编译器。我会仔细检查你的环境路径。

答案 2 :(得分:0)

也许不是最好的答案,但要把事情搞定。安装Bash On Ubuntu On Windows并安装cmake并使用sudo apt-get install cmakesudo apt-get install build-essential进行安装(如果尚未安装)。但是,Bash On Ubuntu On Windows仅附带Windows 10,并且对于访问特定驱动器,您应使用/mnt/c代替C:\

按照this official tutorial安装Bash On Ubuntu On Windows

mona@DESKTOP-0JQ770H:/mnt/c$ cmake -version
cmake version 2.8.12.2
mona@DESKTOP-0JQ770H:/mnt/c$ make -version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu

此外,您当然可以在Bash On Ubuntu On Windows

中安装git
sudo apt-get install git
mona@DESKTOP-0JQ770H:/mnt/c$ git --version
git version 1.9.1

虽然我不建议使用基于Linux的git推送到特定于Windows的SDK /代码的github。我仍然会坚持使用Git Bash处理git。

*我曾经使用CMAKE GUI处理Windows 10中的CMake,然后将我的东西移植到Visual Studio。这也是一个简洁的解决方案,具体取决于您的代码库。