cmake 可以使用git for windows、MinGW和make进行make

vvppvyoh  于 2022-11-24  发布在  Git
关注(0)|答案(3)|浏览(169)

首先,我已经从https://sourceforge.net/projects/mingw/files/安装了MinGW,并且安装了mingw 32-gcc-g++和mingw 32-gcc-objs。
其次,我已经为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})
rqqzpn5f

rqqzpn5f1#

好吧,我真丢脸,
我不得不重新启动我的计算机,并在CMake GUI中选择"MinGW Makefiles"。单击Configure,然后单击Generate
接下来,您一定不能使用Git for windows,因为存在sh.exe,并且它是一个cmake错误。
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\bin添加到系统路径。

bprjcwpo

bprjcwpo2#

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

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

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

bn31dyow

bn31dyow3#

也许这不是最好的答案,但可以让事情继续进行。安装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。这也是一个整洁的解决方案,取决于你的代码库。

相关问题