CMake编译+Mingw32安装+QT使用



  • QT:5.5.1 我的目录0_1462669940749_5254a040-620e-44e6-aaf6-050ee9430da9.png
    Opencv:OpenCV 3.0.0-beta (从他的GitHub上下的zip)
    CMake:cmake-3.4.2-win32-x86.exe

    环境变量添加:F:\Programme\Qt\5.4\mingw491_32\bin;
    F:\Programme\Qt\Tools\mingw491_32\bin(网络教程上是这个)
    不过我是两个都添加的

    我的source文件夹中有什么?
    0_1462669975421_fac2d972-0edd-4711-a19f-943c562a79f7.png
    1.生成Makefiles
    打开CMake,配置源码路径和生成物的目标路径:
    源码目录:新建sources目录将zip包解压至此目录
    自由指定生成路径
    0_1462670021820_fa6b1601-7a19-468b-850a-93e8dfa27aac.png
    点击Configure,在弹出的框中选择MinGW Makefiles ,并勾选 Specify native compilers:
    0_1462670042085_fb91bd35-5295-436f-8b17-fe73f453a0b0.png
    配置
    C:gcc F:/Programme/Qt/Tools/mingw491_32/bin/gcc.exe
    C++:g++ F:/Programme/Qt/Tools/mingw491_32/bin/g++.exe
    0_1462670068517_d5a98729-9e83-4726-90ba-ddb2662191c3.png
    不能勾选WITH_IPP
    0_1462670086525_39b25a9c-9c3e-4a57-a3e1-4fbad155fb7f.png
    勾选WITH_OPENGL和WITH_QT
    点击Configure后:
    如果上面有红色项目(我是把它改成没红色的了)
    可能项:
    CMAKE_MAKE_PROGRAM的一项,把它的Value填写为F:/Programme/Qt/Tools/mingw491_32/bin/mingw32-make.exe
    QT_QMAKE_EXECUTABLE,它的值填写为:F:/Programme/Qt/5.4/mingw491_32/bin/qmake.exe
    QT_MKSPECS_DIR,它的值填写为:F:/Programme/Qt/5.4/mingw491_32/mkspecs
    QT_QTCORE_LIBRARY_DEBUG,它的值填写为:F:/Programme/Qt/5.4/mingw491_32/bin/Qt5Cored.dll
    QT_QTCORE_LIBRARY_RELEASE,它的值填写为F:/Programme/Qt/5.4/mingw491_32/bin/Qt5Core.dll
    QT_QTCORE_INCLUDE_DIR,它的值填写为F:/Programme/Qt/5.4/mingw491_32/include/QtCore/5.3.1/QtCore

    Qt5Concurrent_DIR,Qt5Core_DIR,Qt5Gui_DIR,Qt5Test_DIR,Qt5Widgets_DIR,Qt5OpenGL_DIR的分别为
    F:/Programme/Qt/5.4/mingw491_32/lib/cmake/Qt5Concurrent
    F:/Programme/Qt/5.4/mingw491_32/lib/cmake/Qt5Core
    F:/Programme/Qt/5.4/mingw491_32/lib/cmake/Qt5Gui
    F:/Programme/Qt/5.4/mingw491_32/lib/cmake/Qt5Test
    F:/Programme/Qt/5.4/mingw491_32/lib/cmake/Qt5Widgets
    F:/Programme/Qt/5.4/mingw491_32/lib/cmake/Qt5OpenGL

    来源: http://blog.csdn.net/zhaocj/article/details/38944037
    再按Configure(警告无视,错误正视)
    成功会如以下显示:
    0_1462670132260_fb8902be-ff22-4cb1-a5e3-f1f528953e16.png
    点击Generate,生成MakeFiles成功。CMake可关闭

    2.编译Opencv
    找到sources目录下的OpenCVCompilerOptions.cmake
    0_1469713576787_cv.png
    打开
    找到
    add_extra_compiler_option(-Werror=non-virtual-dtor)
    将它注释掉,变成:
    #add_extra_compiler_option(-Werror=non-virtual-dtor)

    返回到(生成物路径):F:\Programme\Opencv\install\opencv-3.0
    在这个路径下按住键盘的shift键,然后右键鼠标,打开cmd窗口:
    0_1462670190221_b9967c1b-6c3b-427e-a099-a87602dceb34.png
    在命令行输入 mingw32-make
    这个过程比较久,大概几十分钟,因电脑而异。编译完成后,如下图示。
    0_1462670205340_6e6405e9-9308-4af5-a0c4-29bc37bcde35.png
    然后输入 mingw32-make install 进行安装:大约几钟后,安装完成。

    3.配置开发环境
    网上教程做法:
    1.生成物目录\install 拿include文件夹
    0_1462670268890_fa517913-1b07-46d5-aa8b-aef4383a7385.png
    2.上一级路径的 lib bin文件夹
    0_1462670293147_8566138c-8099-4631-8869-0adf9de82c8c.png
    全复制到一个文件夹中(F:\Programme\Opencv\necessary)(这只是方便而已,不复制也行,不过添加库时比较乱)
    添加bin目录进环境变量:F:\Programme\Opencv\necessary\bin

    4.测试
    pro:
    INCLUDEPATH += F:\Programme\Opencv\Qtinstallcv\include
    INCLUDEPATH += F:\Programme\Opencv\Qtinstallcv\opencv
    INCLUDEPATH += F:\Programme\Opencv\Qtinstallcv\opencv2
    LIBS += -L F:\Programme\Opencv\necessary\lib\libopencv_*.a

    main.cpp
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    using namespace cv;
    int main()
    {
    Mat image;
    image=imread("C:/Users/Administrator/Desktop/5.jpg");
    imshow("li",image);
    waitKey();
    return 0;
    }

    效果:

    参考:
    http://blog.csdn.net/zhaocj/article/details/38944037
    http://www.mamicode.com/info-detail-500574.html



  • 效果图漏了
    0_1462672411933_2d9af2aa-4103-4749-a6e3-b7280b60cb22.png



  • 很好很强大~~~~



  • 请问楼主使用cmake编译Qt的初衷是什么?为什么不使用正常的命令行编译?
    楼主为什么要使用cmake编译qt呢?初衷是什么?



  • @stlcours 很简单,那就是以前用CMake习惯了,习惯使然。


 

最近的回复

  • 随后在git for windows这个软件中输入

    git clone git@git.coding.net:jiangcaiyang1/qtdreamrelease_windows.git

    就可以获得一个空的项目了。其它的项目也是同样的操作方法。然后呢,将此作为自动构建的代码库吧。
    此次介绍就是这样~😘 😘 🐧

    阅读更多
  • 0_1540027445466_很好.jpg
    萌梦安装包的分发始终是一个难题。要有一个稳定并且有效的方法进行分包,才能让大家都能够享受到萌梦动作编辑器的最新功能。我们目前有两种分发的方法:

    离线安装包。通常的位置是
    1.1 百度云盘
    1.2 QQ群文件
    1.3 github
    其中百度云盘和QQ群文件不会定期地更新,只有github的文件会定期更新。因为构建脚本要求每次有更改,都让github的文件更新。

    在线安装包。通常的位置是
    2.1 百度云盘
    2.2 QQ群文件
    2.3 github
    这里在线安装包的代码库主要还是在github中,在线安装包非常依赖CDN加速。目前github这块儿在国内做得不太好,还是希望在国内找一个类似的加速。目前可以选的只有两家:

    码云

    coding

    因为以前做过coding的加速,目前coding已经和腾讯云战略合作,所有的代码都要迁移到腾讯云了。而且对于代码库的空间要求变高了。128M。目前我的一个账号显然满足不了要求。所以有必要再注册一个账号。

    下面记录一下新建coding代码库的方法,并且尝试将萌梦安装包的线上代码库部分移动到coding代码库中。

    注册

    到这个位置注册。

    https://coding.net/register

    相信很快就会带你跳转到腾讯云中。不过这里我选择的是邮箱的方式,因为我希望注册尽量多的账号。

    设置ssh密钥

    进入控制台后,是这样的:
    0_1540028446495_2eeb7e93-c15b-4c82-9b36-58e1c304ea3f-image.png
    这个时候,我们要先创建项目,然后ssh的公钥。
    0_1540028822318_b3e81b93-099c-42d5-820d-deaf8d445913-image.png

    创建以后,开始部署公钥。在这里:
    0_1540028925337_d8059b64-8535-45e5-ba4c-d7454505aa5a-image.png
    这期间最好用OpenSSL生成SSH密钥。
    我使用的是git for windows来生成密钥的。方法是

    ssh-keygen

    如果你生成好了密钥,可以直接打开密钥内容看看:

    cat ~/.ssh/id_rsa.pub

    然后粘贴到网站的文本框中。

    添加好了之后,勾选“准许推送权限”,需要推送代码到代码库中。

    阅读更多

关注我们

微博
QQ群











召唤伊斯特瓦尔