我安装 Qt 5.10 最新版本和 opencv3.4.1 ,我无法在此版本的Qt中安装库 Cmake 有人可以帮我在我的Windows 10 64位上做吗? 我也尝试过这个视频 https://www.youtube.com/watch?v=ZOSu-2Oju-A 并在cmd步骤中我有这个(图片在这个链接)
在这个链接中也是((https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows))我仔细地做了所有步骤,但是在执行这些步骤之后我没有在opencv-build中找到文件夹bin而我的操作系统是Windows 10 64位谢谢寻求帮助。
答案 0 :(得分:1)
注意:我的回答更多基于[SO]: openCV mingw-32 error in cmd(发布的 .pdf 中提到的工具版本)
在一开始,我尝试使用计算机上已有的产品( Win 10 )进行构建:
构建过程已经过了这一阶段(嗯,它在此点以下失败了,我没有查清楚原因)。
无论如何,我认为我使用的构建环境和建议的构建环境距离太远,所以我:
问题的核心(如注释中所述,或者由 Google 指定错误)是 g ++ 编译器未使用 C ++ 11 标准(
所以,我做了一个小测试:将错误代码粘贴到文件中(并添加一个虚拟 main ),并在2个 MinGW 安装中进行尝试。
code.cpp :
template <typename char_type>
bool null_or_empty(const char_type* s) {
return s == nullptr || *s == 0;
}
int main() {
return 0;
}
输出:
e:\Work\Dev\StackOverflow\q051629751>dir /b build build.bat cmake-gui.exe - Shortcut.lnk code.cpp src e:\Work\Dev\StackOverflow\q051629751>set _PATH=%PATH% e:\Work\Dev\StackOverflow\q051629751>set PATH=%_PATH%;c:\Install\x64\MinGW32\MinGW32\7.2.0-posix-seh-rt_v5-rev1\mingw64\bin e:\Work\Dev\StackOverflow\q051629751>"c:\Install\x64\MinGW32\MinGW32\7.2.0-posix-seh-rt_v5-rev1\mingw64\bin\g++" code.cpp e:\Work\Dev\StackOverflow\q051629751>"c:\Install\x64\MinGW32\MinGW32\7.2.0-posix-seh-rt_v5-rev1\mingw64\bin\g++" --version g++ (x86_64-posix-seh-rev1, Built by MinGW-W64 project) 7.2.0 Copyright (C) 2017 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. e:\Work\Dev\StackOverflow\q051629751>dir /b a.exe build build.bat cmake-gui.exe - Shortcut.lnk code.cpp src e:\Work\Dev\StackOverflow\q051629751>del /q a.exe e:\Work\Dev\StackOverflow\q051629751>set PATH=%_PATH%;c:\Install\Qt\Qt\Tools\mingw530_32\bin e:\Work\Dev\StackOverflow\q051629751>"c:\Install\Qt\Qt\Tools\mingw530_32\bin\g++" code.cpp code.cpp: In function 'bool null_or_empty(const char_type*)': code.cpp:3:17: error: 'nullptr' was not declared in this scope return s == nullptr || *s == 0; ^ e:\Work\Dev\StackOverflow\q051629751>"c:\Install\Qt\Qt\Tools\mingw530_32\bin\g++" --version g++ (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 5.3.0 Copyright (C) 2015 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. e:\Work\Dev\StackOverflow\q051629751>"c:\Install\Qt\Qt\Tools\mingw530_32\bin\g++" code.cpp -std=c++0x e:\Work\Dev\StackOverflow\q051629751>
如所见,较早的 g ++ 需要-std=c++0x
明确。
按照构建步骤操作,我得到了与下图相同的错误(我直接在 protobuf 的目录中启动了 mingw32-make 之前建立的东西):
两者都在 cmake-gui 级别完成。设置路径后:
注释:
由于我距离成为 CMake 专家还很遥远,因此在执行此操作之前,我先清空构建目录,以确保以前的构建没有剩余(当然,缺点是是所有操作都需要再次完成,通常需要很长时间)
由于我没有启用并行构建,所以我没有等待完整的构建完成(因为这需要很长时间),而只是检查它是否通过了这一点
点击“ 添加条目”并设置[CMake 3.1]: CXX_STANDARD:
在下面,请注意,构建通过之前失败的地方:
注释:
搜索与 protobuf 相关的变量,并取消选中任何在 BUILD 或 WITH 组中的变量( 蓝色行):
同样的效果在下面- protobuf 构建不再发生(它紧随 libIlmImf 之后):