文档章节

从源码编译QGroundControl

bygreencn
 bygreencn
发布于 2014/02/14 15:29
字数 875
阅读 5738
收藏 2
  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解压后的根目录运行即可:

<!-- lang: shell -->
@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

© 著作权归作者所有

bygreencn
粉丝 13
博文 22
码字总数 7435
作品 0
武汉
程序员
私信 提问
利用gstreamer设计自已的图传 并整合到Qground Control地面站

版权声明:本文为博主 一銤阳光 学习整理的文章,如需转载,请注明出处、附上CSDN博文链接。 https://blog.csdn.net/CSDNhuaong/article/details/78185469 设计思路 首先打算在无人机端搭载一...

一銤阳光
2017/10/09
0
0
字节地面站定制开发

地面站二次开发服务 Mission Planner二次开发:基于MP地面站源码,进行功能删减、增加等; QgroundControl二次开发:基于QGC地面站源码,进行功能删减、增加等; 深度定制化地面站:基于MP、...

ybqunkong
2017/12/08
65
0
字节地面站定制开发

地面站二次开发服务 Mission Planner二次开发:基于MP地面站源码,进行功能删减、增加等; QgroundControl二次开发:基于QGC地面站源码,进行功能删减、增加等; 深度定制化地面站:基于MP、...

ybqunkong
2017/12/08
117
0
字节地面站定制开发

地面站二次开发服务 Mission Planner二次开发:基于MP地面站源码,进行功能删减、增加等; QgroundControl二次开发:基于QGC地面站源码,进行功能删减、增加等; 深度定制化地面站:基于MP、...

ybqunkong
2017/12/08
11
0
字节地面站定制开发

地面站二次开发服务 Mission Planner二次开发:基于MP地面站源码,进行功能删减、增加等; QgroundControl二次开发:基于QGC地面站源码,进行功能删减、增加等; 深度定制化地面站:基于MP、...

ybqunkong
2017/12/08
9
0

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据教程Scala系列之样例类_Option_偏函数

  好程序员大数据教程Scala系列之样例类_Option_偏函数,在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值。 ...

好程序员官网
20分钟前
3
0
zk中ServerCnxnFactory连接管理工厂

作为ServerCnxn的工厂抽象类 属性 ZOOKEEPER_SERVER_CNXN_FACTORY zookeeper.serverCnxnFactory secure 在ServerCnxnFactory中SSL是否启用 sessionMap session管理配置中信息(sessionId,Ser......

writeademo
22分钟前
3
0
【代码审计01】几种常见的漏洞种类以及代码审计工具

前言 代码审计是在经过黑盒测试完毕,也就是检查应用的基本功能是否符合产品业务需求下进行的。需要有一定的编码基础以及对漏洞形成原理的基本认知,通过工具或者经验检测中代码中可能出现的...

北桥苏
23分钟前
4
0
重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

作者: OAM 项目负责人 导读:2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Open A...

阿里巴巴云原生
24分钟前
3
0
【进阶之定义函数】一个查询树结构数据的集合

1、基本定义 delimiter 自定义符号  -- 如果函数体只有一条语句, begin和end可以省略, 同时delimiter也可以省略create function 函数名(形参列表) returns 返回类型  -- 注意是retru...

卯金刀GG
31分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部