博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从源码编译QGroundControl
阅读量:7180 次
发布时间:2019-06-29

本文共 3722 字,大约阅读时间需要 12 分钟。

hot3.png

  1. 首先需要QT的编译环境 ,你可以直接安装好你编译器相匹配的环境包,也可以从源码开始编译QT。QGroundControl好像还不支持QT5,因此需要下载QT4包。这里我从源码开始编译QT 4.8.5,QT4.8.2或之前的版本类似,我从4.8.0的版本都编译过,没有任何问题,只是注意QT需要编译QTwebkit,我使用的环境是win32-msvc2010.

编译QT之前有几处源码的编译的问题必须解决:

1)、qt的安装路径,以及以后使用vs建立qt项目的时候,不能有中文,路径中也不能有空格.

2)、删除源码包中bin目录下的syncqt和syncqt.dat文件,如你不放心可将其改名或剪切到别的位置。如不修改将发生 Perl not found in environment - cannot run syncqt 错误。

3)、一定要修改\mkspecs\win32-msvc2010下的qmake.conf文件,将其中的"QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-"改成"QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t" 注意末尾的”-“号区别。如不修改将来如有项目使用wchar_t,qt却编译成wchar_t-,编译会导致连接错误,提示找不到Qwstring;

4)、关于是否需要修改\mkspecs\win32-msvc2010下的qmake.conf文件中的QMAKE_CFLAGS_RELEASE,QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO,QMAKE_CFLAGS_DEBUG这3处后面的MD,MDd,取决你打算动态还是静态编译,如果是静态编译的话,改为:MT,MTd(最后还要在vs2010中的项目属性中将MD改为MT,以实现在没有VC库的电脑也能运行Qt程序。)。如果是动态编译的话可以不改。

5)、一定要修改src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,将本行替换成return WEB_UI_STRING("Look Up "<selection>"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));(请直接将以上英文部分一次性全复制,其实它们是一行,不要分行复制)。如果你仔细看原来的那行的话,你会发现双引号是错误的,如不修改将出现编译Webkit 时会出现 U1077错误。

以下是我的编译脚本,可以直接使用,保存为批处理文件在QT解压后的根目录运行即可:

@CALL "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" @set cur_dir=%cd%\@set QTDIR=%cur_dir%@set QMAKESPEC=win32-msvc2010@rem set ConfPara=-debug-and-release -opensource -static -system-sqlite -fast -no-dsp@rem set ConfPara=-debug-and-release -opensource -static -webkit@set ConfPara= -release -platform win32-msvc2010 -webkit -plugin-sql-sqlite -qt-sql-sqlite -opensource -nomake demos -nomake examples@set PATH=C:\Perl;C:\Perl\bin;C:\Perl\site\bin;%QTDIR%/bin;E:\sqlite\bin;%PATH%@set INCLUDE=%MINGWDIR%/include;%QTDIR%/include;%QWTDIR%/src;%LOG4QTDIR%/src;E:\sqlite\include;%INCLUDE%@set LIB=C:\Perl\lib;C:\Perl\site\lib;%MINGWDIR%/lib;%QTDIR%/lib;%QWTDIR%/lib;E:\sqlite\lib;%LIB%@echo ***********************************************************************@echo Created By Sui Libin(gmail:bygreencn.gmail.com)@echo Includes : QT 4.8.2、Visual Studio 2010@echo QT : %QTDIR%@echo QMAKESPEC: %QMAKESPEC%@echo ConfPara: %ConfPara%@echo ***********************************************************************@type nul>%temp%\~YesOrNoA.tmp@echo.@echo !!!!Build QT? [y/n]?@del /p %temp%\~YesOrNoA.tmp>nul@if not exist %temp%\~YesOrNoA.tmp goto Buildqt@del %temp%\~YesOrNoA.tmp@goto QtEnvironment:Buildqt@type nul>%temp%\~YesOrNo.tmp@echo.@echo !!!!Start to clear project do it? [y/n]?@del /p %temp%\~YesOrNo.tmp>nul@if not exist %temp%\~YesOrNo.tmp goto Cleaning@del %temp%\~YesOrNo.tmp@goto Config:Cleaning@echo Cleaning, please waiting...@nmake clean@nmake confclean:Config@type nul>%temp%\~YesOrNo2.tmp@echo.@echo !!!!Configure project do it? [y/n]?@del /p %temp%\~YesOrNo2.tmp>nul@if not exist %temp%\~YesOrNo2.tmp goto Configuring@del %temp%\~YesOrNo2.tmp@goto Build:Configuring@echo y|configure.exe %ConfPara%@echo Create .vcproj ...@cls@qmake -tp vc -r@:Build@echo Build it now...@cls@rem jom@nmake@@rem pause@echo backup pdb file now...@md shared@copy lib shared@copy bin shared@copy *.cache shared:QtEnvironment@echo ***********************************************************************@echo PATH@echo %PATH%@echo ***********************************************************************@echo INCLUDE@echo %INCLUDE%@echo ***********************************************************************@echo LIB@echo %LIB%@echo ***********************************************************************@cmd /k
  1. 编译QGroundControl, 以上的编译控制台环境下进入QGroundControl目录保存运行以下命令即可:
    qmake -tp vc qgroundcontrol.pro devenv qgroundcontrol.sln /Build Release

转载于:https://my.oschina.net/bygreencn/blog/199898

你可能感兴趣的文章
iOS开发基础知识--碎片26
查看>>
制作鼠标移动到div上面显示弹出框
查看>>
java既然存在gc线程,为什么还存在内存泄漏?
查看>>
Linux Vim
查看>>
UVA - 11987 Almost Union-Find[并查集 删除]
查看>>
使用css开启硬件加速提高网站性能
查看>>
CMakeLists.txt的写法
查看>>
Flask如何使用https?
查看>>
Linux命令之kill
查看>>
Asp.Net SignalR Hub类中的操作详解
查看>>
附上解决迅雷9及迅雷极速版任何资源下载任务出错、内容违规问题
查看>>
hadoop3: mkdir: cannot create directory `/usr/local/hadoop/bin/../logs’: Permission denied
查看>>
高阶函数与面向对象继承的比较
查看>>
群雄逐鹿的移动互联网时代【转载】
查看>>
【排序】InsertSort
查看>>
[c++11]多线程编程(五)——unique_lock
查看>>
漫谈promise使用场景
查看>>
Design Pattern的万剑归宗 => Mediator
查看>>
Javascript中的原型继承的一些看法与见解
查看>>
HackerRank:JavaScript 是最知名的编程语言
查看>>