Linux环境下Qt的编译

Linux环境下Qt的编译
Linux环境下Qt的编译

Linux环境下Qt的编译

邵发2015/6/26

一、编译Qt 4.8.3

Qt本身其实就是由一个大型的库,在Linux使用时,首先要编译Qt本身。Qt压缩包是一个很容易编译的带了源码的项目,下面介绍如何编译它。

以下是对QT4.8.3的编译,如果你的版本不一致,只要把版本号目录名改一下就行了。

1. 在Linux下,解压缩Qt4.8.3的压缩包,例如

tar zxvf qt4.8.3.tar.gz -C /opt/build/qt4.8.3/

2. 在命令行窗口中,切换到源码目录,例如

cd /opt/build/qt4.8.3/

和普通的Linux项目一样,执行configure / make / make install三大步骤。

(1) configure

为了加快编译速度,先修改一下 projects.pro这个文件,把不需要编译的行前加#号注释一下。(否则编译过程极为漫长,因为它把examples和demos都编译了一遍)

for(PROJECT, $$list($$lower($$unique(QT_BUILD_PARTS)))) {

isEqual(PROJECT, tools) {

SUBDIRS += tools

} else:isEqual(PROJECT, examples) {

# SUBDIRS += examples

} else:isEqual(PROJECT, demos) {

# SUBDIRS += demos

然后,执行configure进行配置,例如

./configure -prefix /opt/qt4.8.3 -opensource -no-qt3support

-nomake examples -nomake demos -no-webkit

注:在编译选项中,为了加快编译速度,取消了example,demos和webkit模块的编译。

(2) make

输入make命令,开始编译

make

(3) make install

将编译好的库文件输出到 /opt/qt4.8.3/目录

make install

二、在Linux下编译QT项目

我们在Windows下,用Vs2008+Qt插件创建的项目,可以拿到Linux编译得到可以在Linux运行的桌面程序。

1. 生成 *.pro文件

参照教学视频里的第16.1里描述,生成 *.pro / *.pri文件

2. 在Linux 编译

把Windows下的Qt项目文件夹的内容拷贝到Linux上,例如,放在

/opt/project/TestQt/下

然后就可以编译了:

export PATH=$PATH:/opt/qt4.8.3/bin

cd /opt/project/TestQt/

qmake

make

注:环境变量PATH可以事先在/etc/profile中设置好,不需要每次都设置一下。

注:qmake是Qt的编译程序,它能够根据*.pro中的配置参数来编译项目。也可以后面直接指定*.pro的名字,例如

qmake TestQt.pro

3. 运行程序

在*.pro文件中,TARGET规定了输出的可执行程序的文件名,而DESTDIR规定了输出的目录。

由于我们生成的是一个界面程序,所以需要在桌面环境中运行。直接在文件夹目录双击运行即可。

注:不能在纯命令行(runlevel=3)环境下运行(即,纯命令行模式下是无法启动GUI 程序的)。要运行GUI程序,显然必须要先进入桌面环境才可以运行。

Linux_Qt_4环境配置

Linux下Qt 4.8.0 环境配置 Step1:在诺基亚官QT网下载文件包 https://www.360docs.net/doc/7a17864016.html,/qt/source/qt-everywhere-opensource-src-4.8.0.tar.gz Step2:打开取得root权限,将安装包解压到/usr/local 下 [CentOS@localhost ~]$ su root [root@localhost CentOS]# tar zxf /tmp/qt-everywhere-opensource-src-4.8.0.tar.gz -C /usr/local (不加-C的话在解压时会出现Not found in archive 的错误) Step3:安装Qt的一些依赖软件包 A.gcc C++ 编译器 B.Xlib库,在软件添加中找到libX11-dev,libXext-dev,libXtst-dev这三个包并安装 C.Make包,可以在终端中用yum命令安装 Step4:用root权限执行Qt中的配置文件configure [CentOS@localhost ~]$ cd $QTDIR (QTDIR是在.bash_profile定义好的环境变量) [CentOS@localhost qt-everywhere-opensource-src-4.8.0]$ su root [root@localhost qt-everywhere-opensource-src-4.8.0]# ./configure 出现以下提示 Which edition of Qt do you want to use ? Type 'c' if you want to use the Commercial Edition. Type 'o' if you want to use the Open Source Edition. 输入”o”开始安装编译环境 Step5:配置结束后中遇到如下提示 [root@localhost qt-everywhere-opensource-src-4.8.0]# gmake 开始Qt安装编译,大概需要2个小时左右

嵌入式蓝牙文件传送方案的实现

嵌入式蓝牙文件传送方案的实现 摘要:针对蓝牙技术在无线通信中的应用需求,基于ARM9微处理器S3C2440的嵌入式系统,设计并实现了蓝牙文件传送方案。系统已经通过板级验证及实际应用测试,完全实现系统设计功能。关键词:嵌入式;蓝牙;单点传送;多点传送 蓝牙是一种低成本、短距离无线通信技术,工作频段使用全球统一开放的2.4 GHz的ISM 频段[1],并将此频段分为79个跳频点,采用跳频技术,增强了蓝牙通信的可靠性。蓝牙技术现已被广泛应用于无线通信领域中,如个人无线通信设备、无线网络通信以及各种传宣系统[2]。利用蓝牙技术实现不同类型的文件传送是蓝牙通信的重要应用,而传统的基于蓝牙1.0规范的蓝牙通信只支持单点传输,随着蓝牙技术的发展,蓝牙 2.0规范中增加了EDR(Enhance Data Rate)技术,提高了蓝牙数据传输的吞吐量,为蓝牙多点通信提供了条件。本文依据蓝牙2.0规范,结合TDD技术,在实现了单点文件传送的基础上,成功完成了嵌入式系统对远程蓝牙设备的多点文件传送方案,并应用个人区域网络技术实现了嵌入式系统与PC机之间的网络文件传送,扩展了蓝牙通信在网络领域的应用。蓝牙文件传送和网络文件传送功能为广告产业及其他信息发布相关产业提供了广阔的发展空间,具有良好的市场前景。1 方案设计概述方案设计以ARM嵌入式系统作为硬件实现平台,并基于Linux操作系统,完成蓝牙文件传送方案。文件单点传送方案依据对象交换协议OBEX(Object Exchange),利用蓝牙官方协议栈BlueZ以及openobex上层应用函数库实现对象推送功能,从而完成对远程设备的文件单点传送。文件多点传送方案将在底层应用全双工时分复用(TDD)技术以及EDR (Enhance Data Rate)技术实现蓝牙数据通道共享和宽带、高吞吐量数据发送,在上层以文件单点传送方案为基础,辅以嵌入式技术建立并管理多个文件发送进程,完成文件向多个远程设备的同时发送,加入了重发机制以保证文件多点传送的可靠性。此外,基于个人区域网络技术的网络文件传送功能,使用户可在PC机端以FTP方式访问并更新嵌入式系统中的文件。 2 方案硬件架构本方案基于ARM硬件开发平台,以SAMSUNG S3C2440作为核心处理器,并与64 MB SDRAM和64 MB Flash共同组成核心嵌入式系统,运行ARM-Linux-2.6.12内核操作系统,其中内核配置蓝牙子系统,可为USB蓝牙适配器提供驱动。蓝牙适配器作为系统的核心通信部件接至USB Device接口,并通过适配器完成文件传送功能。同时本硬件系统易于功能扩展和系统移植,开发人员可通过USB Host接口将操作系统内核以及上层应用程序下载到SDRAM或烧写至Flash中,并通过RS232串口对应用程序进程调试。硬件整体架构。 3 方案软件框架软件框架主要由蓝牙核心协议、会话层协议以及上层应用程序构成,。其中蓝牙核心协议包括:RF协议、基带(Baseband)协议、LMP、L2CAP,主要完成蓝牙数据由逻辑链路层到实际物理通道的控制和处理。 会话层协议将建立对应功能的模型描述,并定义相关操作方法,为上层应用程序提供接口。其中RFCOMM协议提供对基于L2CAP协议的串口仿真,基于ETSI07.10,可支持在两个蓝牙设备之间同时保持高达60路的通信连接。其次,本方案利用服务发现协议(SDP)获取周边蓝牙设备服务信息,并自动筛选出带有对象推送服务的远程设备作为发送目标,此协议由BlueZ 所提供的接口函数实现。而OBEX作为实现文件传送的核心协议,将为被传送文件建立对象模型,并面向对象及传送过程定义对应操作方法,以实现文件传送。PAN协议用于建立蓝牙无线网络与以太网之间的访问点,以完成与TCP/IP之间的无缝连接。上层应用程序将基于应用层协议所提供的接口函数,主要依据对象交换协议(OBEX)实现对象推送(OBEX PUSH)功能,从而完成文件的单点传送,并在此基础上,结合Linux多进程技术实现文件多点传送。此外,利用BlueZ提供的PAN工具实现嵌入式系统与PC机之间的组网,完成网络文件传送功能。4 文

qt-wince安装

Qt-WinCE全解 声明:花费了三天时间,周转各大网站,终于在今天将自己的第一个Qt程序在“小I(SAMSUNG i718+)”上跑了起来! 一、Qt嵌入式环境的搭建 a) 首先,下载Qt的嵌入式开发包qt-embedded-wince-opensource-src-4.4.0.zip b) 然后,下载VS2005。 c) 最后,下载一个嵌入式开发的SDK,如Windows Mobile 5.0 Pocket PC SDK,可以在微软的官方网站上下载到! d) 还有一个是同步的软件Microsoft ActiveSync4.5中文简体版。 ------------------------------------------安----装---------------------------------- e) 首先安装VS2005,很简单,按照向导来,在自定义安装中务必选择“智能设备开发”。 f) 关于Microsoft ActiveSync4.5的安装更是“straightforward”。在此不再多说! g) 然后,安装Windows Mobile或是其它版本的SDK,可以用自定义的SDK!简单 h) 比较麻烦的就是qt-embedded-wince的安装。参照下面的步骤:①、解压,将解压后的文件夹放到一个不含空格的路径中,如我的:f:\penguinx\qt_wince,qt_wince即为此文件夹。然后设置环境变量:右键“我的电脑”->“属性”->点“高级”标签->“环境变量”选项->在"PATH"中添加路径“f:\penguinx\qt_wince \ bin”。OK!②编译前戏。首先,配置编译选项,进行VS2005的命令行中,进入解压的文件夹,然后执行如下:configure -platform win32-msvc2005 -xplatform wince50standard-armv4i-msvc2005可以根据自己的板子及手机配置来选择其它的嵌入式的xplatfrom。这个过程可能需要十几分钟。执行完后,再次在VS2005中设置临时的环境变量,编译时要用到:如下: set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ce\include;D:\Program Files\Windows CE Tools\wce500\Windows Mo bile 5.0 Pocket PC SDK\Include\Armv4i set LIB=D:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4i;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I set PATH=D:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH% 在此我期望能根据自己的软件安装情况将上面的目录“拿来主义”一下。设置完后,执行nmake,过两、三个钟头后,你就可以Enjoy your journey. 最后,执行nmake,安装完毕!我的Qt-WinCE安装在f:\penguinx\qt_wince

qt程序在linux console模式下运行

Qt程序在linux Console模式下运行 原文链接:在x86非图形界面下运行QtEmbedded程序 众所周知,一般我们在桌面环境下可以使用qvfb这个工具作为运行QtEmbedded程序的模拟器环境,但我们今天不讲这些大家都知道的事情。 回顾一下QtEmbedded对系统以及硬件的要求,一般来说只有下面少少的几点: 1、 Linux内核+ framebuffer驱动+ socket支持 2、 /tmp可写 3、有合适的键盘和鼠标(触摸屏)驱动并做好与Qt的集成 4、合适的编译器和交叉编译工具链(toolchain) 那么聪明的同学已经想到了,为什么我们不能直接在桌面的linux系统中运行QtE程序呢?似乎QtE的要求我们的桌面系统一样可以满足亚。答案当然是肯定的。 一条一条来说的话, 1内核支持framebuffer和socket这一条大部分发行版默认的内核就可以; 2就不用说了;3在QtE的源码里自带了对普通桌面鼠标和键盘硬件的驱动;4对于X86系统,普通的gcc就可满足,一般linux发行版带的gcc版本也基本可以满足QtE编译的要求。 那么,怎么才能实现我们的想法呢?还是要一步一步按部就班来做。以笔者的Ubuntu 为例,介绍一下设置的具体步骤。 编译QtEmbedded 这一步编译和编译qvfb版本区别不大,只是不再需要configure的时候加-qvfb参 数,只用不加参数的configure足矣。 # tar -zxvf qt-em bedded-linux-opensource-src-4.5.1.tar.gz # cd qt-em bedded-linux-opensource-src-4.5.1 # ./configure -embedded x86 –qvfb // 我的编译情况是: ./confignre –prefix /work/Trolltech/QtEm bedded-4.5.1–no-o penssl # gmake # gmake install qt-em bedded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.1 设置环境变量: # vi ~/.bashrc 把下面的加上去 export QTEDIR=/usr/local/Trolltech/QtEm bedded-4.5.1 export PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/bin:$PAT H export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/lib:$LD_LIBRA RY_PATH

实验一、Qt实验环境搭建和使用

实验一、Qt实验环境的搭建和使用 一、实验目的 1、熟悉Qt的安装步骤 2、熟悉Qt程序的基本结构 二、实验内容 1、搭建虚拟机+Linux实验环境 2、安装Qt4.8 步骤: (1)解压代码 tar zxvf qt-everywhere-opensource-src-4.8.2.tar.gz (2)执行./config生成makefile ./config 下面出现对话框选择open source edition.这是自由版。输入yes接受协议。 (3)编译QT 执行make命令,需要2个小时。 (4)安装QT 运行make install命令。需要几分钟时间,默认安装到/usr/local/Trolltech/Qt-4.8.2. 运行/usr/local/Trolltech/Qt-4.5.3/bin/designer ,若能启动QT,说明QT已经安装好了。 (5)设置环境变量 更改用户环境变量 gedit /home/envi/.bashrc 添加: export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PA TH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PA TH=$QTDIR/lib:$LD_LIBRARY_PA TH 更改包括root用户的环境变量 sudo gedit /etc/profile 添加: export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PA TH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PA TH=$QTDIR/lib:$LD_LIBRARY_PA TH (6)测试环境变量 重启测试环境变量: qmake -v 显示版本信息:

蓝牙协议栈BlueZ的移植与开发

蓝牙协议栈BlueZ的移植与开发* 欧阳鑫 于红岩 吕杨 (昆明理工大学信息工程与自动化学院,昆明,650051) 摘要:蓝牙技术是当前国内外科技界和产业界研究开发的热点技术,其应用范围包括手机、PDA、信息家电设备等领域,蓝牙技术在嵌入式系统上必将得到广泛的应用。而要在嵌入式系统上提供蓝牙开发支持,蓝牙协议栈的移植是关键。本文分析了蓝牙协议栈BlueZ体系结构,详细介绍了在S3C2410开发板上移植BlueZ的步骤,建立了嵌入式蓝牙应用开发平台,并提出了用BlueZ 开发蓝牙应用程序的思路。 关键字:蓝牙技术;蓝牙协议栈BlueZ;移植;S3C2410;Linux 中图分类号:TP368.1 文献标识码:A BlueZ Porting and Programming Ou Yangxin,Yu Hongyan,Lv Yang (College of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650051,China) Abstract: Bluetooth technology is the focused on by the domestic and overseas research institutes. This technology is widely used in mobile phone, PDA, and Information Appliance devices. In the future,bluetooth technology will be widely used in embedded system. Built some bluetooth applications on embedded system,the key technology is porting bluetooth protocol suites to platform. In this paper,we study the BlueZ architecture,describe the steps of Porting BlueZ to S3C2410 Platform in detail,and build the embedded bluetooth application programming platform. In the end, we also give the idea of bluetooth programming. Keywords: bluetooth technology,bluetooth protocol suites BlueZ,porting, S3C2410, Linux 1引言 蓝牙技术是一项低价格、低功耗的射频技术,它能使蓝牙设备实现近距离无线通信。由于蓝牙技术有广泛的应用前景,它已成为当前国内外科技界和产业界研究开发的热点技术。Linux 操作系统的开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ[1]。BlueZ是公布在Internet上的免费蓝牙协议栈,由于它结构简单,应用方便,具有灵活、高效和模块化的特点且具有较强的兼容性,因此BlueZ已经成为Linux操作系统下的官方的蓝牙协议栈。 S3C2410x是三星公司推出的一款高性价比32位的RISC处理器,内含一个由ARM公司设计的ARM920T核,具有低功耗高性能的特点,适用于对价格及功耗敏感的场合。本文使用的S3C2410开发板主要包含以下部件:S3C2410x芯片,32MB Nor Flash,64MB SDRAM,IIC存储器接口,LCD控制器,UART接口,一个USB(Host)接口。 利用S3C2410开发板上的USB接口,可以外扩蓝牙适配器,但S3C2410开发板上没有实现蓝牙设备驱动。本文对蓝牙协议栈BlueZ进行分析,移植BlueZ到开发板上实现蓝牙设备驱动,提出了使用BlueZ开发蓝牙应用程序的基本思路。 *基金项目:云南省自然科学基金项目(2004F0024M)。

QT开发经验

QT学习笔记 1.QT不支持中文路径(文件夹和名称)! 2.QT的编译结果窗口不能正常显示汉字(显示的汉字为乱码) 3.如果程序中使用了PNP以外格式的图片如gif文件,在发布程序时要将 plugins目录下的imageformats文件夹下的对应的Qgif4.dll同时发布。4.在将某一项目的所有文件拷贝至别的文件夹后,系统编译生成的文件夹不会 自动改变,需要再手工改: 5.切换对话框语言: 6.QT单编译某一文件,在文件名上击右键: 7.QT在初始打开项目、点击编译后等,暂时没反应,是正常的,需要等一会: 如下图,读入新的项目,过一会,左下角的绿色图标才会显现(开始是灰色)8.Shadow build选项作用是新建文件夹存放编译结果文件,否则就放在源文件 夹下: 9.【依赖关系】用来设置此项目还依赖于其他的项目(如依赖于另外一个项目 生成的lib库或dll),这样,编译时,会统一自动维持最新编译版本 10.QT的联机帮助的index方式,可以输入关键字,检索条目。但必须打开sidebar 才能显示输入检索关键字的界面: 11.QT编译执行时,显示下列信息: 一种原因是找不到某一DLL。究竟缺少哪一个,可以在开发环境外,直接执行exe文件,会显示: 12.QT Creator执行ReBuild命令,或者是编译时,偶尔会出现并没有重新编译 的现象,例如:将项目中某些文件删除掉(在。Pro中删除,然后保存。),再执行ReBuild,然后运行,发现还是删除前的执行程序,并没有ReBuild。 可能是太过智能,认为没啥变化。 后来发现,在编译设置中,disable了clean steps!恢复clean steps后,开发环境将先做清除,这样就可以正确判断变化了: 13.QT有这样的现象:编译执行run的结果如下: 而执行debug时,弹出对话框,与run不一样,显示了一个错误对话框:14.为了运行时不拷贝需要的dll到当前文件夹(省事),可以设置运行环境变量 PATH。QT编译运行的环境设置见下图,其中PATH会不会自动与Windows系统的设置同步不知道: Windows系统的设置

linux蓝牙驱动代码阅读笔记

导读: linux蓝牙驱动代码阅读笔记 转载时请注明出处和作者联系方式 作者联系方式:李先静 昨天看了一下介绍蓝牙协议文档,今天索性对照看了看kernel里的代码(bluez),这里记点笔记,还是继承了老毛病,只关注整体流程而忽略细节,先了解个大概,等真正需要时再仔细分析。 net/hci_core.c HCI在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像UART、USB 和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。 hci_cmd_task是负责发送CMD的任务,它从hdev->cmd_q队列中取CMD,然后调用hci_send_frame把CMD发送出去,hci_send_frame又会调用实际的HCI驱动的send函数发送数据。 hci_rx_task是负责接收数据的任务,它从hdev->rx_q队列中取数据,然后根据数据的类型调用上层函数处理。数据包有三种类型: HCI_EVENT_PKT:用于处理一些通信事件,比如连接建立,连接断开,认证和加密等事件,这些事件控制协议状态的改变。 HCI_ACLDATA_PKT:异步非连接的数据包,通过hci_acldata_packet提交给上层的L2CAP协议处理(hci_proto[HCI_PROTO_L2CAP])。 HCI_SCODATA_PKT:同步面向连接的数据包,通过hci_scodata_packet提供给上层的SCO协议处理(hci_proto[HCI_PROTO_SCO])。 hci_tx_task是负责发送数据的任务,发送所有connection中的ACL和SCO数据,以及hdev->raw_q中的数据包。 HCI为上层提供的接口主要有: hci_send_sco:发送SCO数据包,把要发送的数据包放入connection的发送队列中,然后调度发送任务去发送。 hci_send_acl:发送ACL数据包,把要发送的数据包放入connection的发送队列中,然后调度发送任务去发送。 hci_send_cmd:发送命令数据,把要发送的数据包放入hdev->cmd_q队列中,然后调度命令发送任务去发送。 hci_register_proto/hci_unregister_proto:注册/注销上层协议,HCI会把接收到的数据转发给这些上层协议。 hci_register_dev/hci_unregister_dev: 注册/注销设备,HCI会把要发送的数据通过这些设备发送出去。 其它一些公共函数。 net/hci_conn.c 提供了一些连接管理,论证和加密的函数。 net/hci_event.c 事件处理函数,负责状态机的维护,这些事件通常会使连接从一个状态转换另一个状态。 hci_si_event:用于发送事件。 hci_event_packet:用于处理底层上报的事件,从hci_rx_task处调用过来。 net/hci_sock.c

QT问题集锦-从学习Qt遇到地各种问题

第一篇初级问题 1 用Qt4.8.5打不开冯工柏菲软件 问题描述:运行环境为Qt4.8.5 + QtCreator3.0.0+VS2010专业版 + Debuging Tools for Windows(x86),用Creator无法打开项目文件,截图如下: 弹出错误:Cannot read E:/PROJECT/Zhou-0410/testToolbar.pro: Unexpected UTF-8 BOM 原因分析:未知 解决方法: 1 安装VS2010SP1,未解决 2 安装VS-Add,未解决 3 使用Creator2.6解决 2 编译失败,系统找不到指定路径 问题描述:见下图

原因分析: 1)可能:添加VS编译器环境变量,在PATH中添加VS 中NMAKE路径 2)确定:Creator或编译器无法识别&符号,即路径原文件名为R&T中含有非法字符,无法准确识别路径 3)默认的环境变量已经有了NMAKE路径 解决方法:把路径中非法字符删除即可 3 编译出现乱码,Parse Error 原因分析:未知,应该是非法字符导致。 4 无法解析的外部符号 原因分析:声明的函数,未实现,或在未实现它的情况下调用了它 解决方法:实现后再调用 5 中文乱码 问题描述:见图

解决方法:转换成utf8格式 6 控件背景图片添加 问题描述:按照相对路径添加背景图片不显示解决方法: 1)相对路径起始点为构建目录,如图

2)添加资源文件,把背景图片放到资源文件中,再通过控件属性,指定资源文件中的背景图片即可。 7 昨天能启动运行成功,今天说异常结束,运行不了 原因分析:可能是昨天在windows、system32里面添加了qtcore.dll等文件导致 解决方法:删除之后就可以运行了,但具体删除哪个,待定 8 通过控件,查找操作函数? 9 修改控件名称时,弹出外部链接错误 解决方法:修改名称后,通常有以下步骤 1)在头文件中删除对应槽; 2)修改槽动作名称或重新生成槽动作,把之前代码拷贝到新槽动作中。 10 Qt数据类型转换 1)int 转 QString int a=10;

Linux-Ubuntu 下 Qt 4.7.1静态编译

Qt的静态编译是本文介绍的内容,相比较来说windows的Qt静态编译比较容易,相反对于linux编译网上的文章实践下来都有这样那样的错误,这里简要小结一下自己的编译成果。 一、实验环境 1Ubuntu 10.04 2qt-x11-opensource-4.7.1.tar.gz 二、前期准备 在安装好Ubuntu 10.04后默认是没有安装程序编译软件包的,所以我们首先是要配置ubuntu。 配置方法:(推荐全程root用户模式) 1、首先调整网络设置使得机器可以上网(具体做法因人而异,这边就忽略不计) 2、需要配置的安装包:输入命令: 3apt-get install build-essential libpcap0.8-dev libx11-dev libfreetype6-dev 4libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev 三、静态编译Qt 1、下载qt-x11-opensource-4.7.1.tar.gz 2、解压缩qt-x11-opensource-4.7.1.tar.gz 3、配置path 输入命令: 5export PATH="$PATH:/usr/local/Trolltech/Qt-4.7.1/bin" 4、进入qt解压目录,配置configure命令:./configure -static -nomake demos

-nomake examples -nomake tools -no-exceptions 5、分别输入“o”和“y”以后进入编译阶段 6make 7make install 慢慢等吧…… 四、静态编译Qt程序 1、建立文件夹,然后写程序文件XX.cpp 2、qmake -project 3、生成pro文件后在里面加入CONFIG += static 4、qmake 5、生成Makefile后在cxxflags的=后插入-static 6、make 小结:实现Ubuntu 下Qt4.7.1静态编译的内容介绍完了,希望本篇的静态编译读你有所帮助。 【编辑推荐】 8Qt中根据不同版本号使用不同源码 9解析Qt资源文件使用 10深度解析QT 介绍跨平台界面库 11Windows下Qt 静态编译连接 12浅谈Qt 静态编译 原文参考:https://www.360docs.net/doc/7a17864016.html,/symbian-270510.htm

Qt5.5.1编译说明

第一次编译已经成功-webkit可用,SSL可用-开荒之旅,历尽艰辛. 第二次编译已经成功-webkit可用,SSL可用-旧事重提,高歌猛进. 建议参考第二次编译说明. 本机使用Qt官方的安装器,已经安装了msvc2010,msvc2013,msvc2013_64和Qt5.5.1源码. 本文在WIN7 x64下用MSVC2010x64动态编译Qt5.5.1源码.没有编译dbus,sql驱动只编译了sqllite.因为dbus是linux下的,驱动是第三方库,没有安装,就无法编译. 源码根目录README有很多有用信息,Qt官方网页也有很多有用信息. ●前置工具: 1.ActivePerl5.8 or later 2.Python2.7 or later 3.Ruby没找到要求,我用的2.2.4 4.DirectX SDK不然编译失败,提示和ANGLE有关,大意是要DX SDK才能把把opengl映射到A NGLE,就算使用-opengl desktop也编译失败,不清楚为什么.DirectX SDK会自己设置一个环境变量DXSDK_DIR.Qt源码自带angle源码,不用去下载,也不用单独编译. 5.C++ compiler supporting the C++98 standard 前四个工具安装后,会自动配置环境变量,也必须有,否则就得在cmd中再配置.ActivePerl在p ath中必须位于msysgit的perl之前(如果有) 关于Windows SDK 7.1和Visual Studio 2010和Visual Studio 2010 SP1,官方是这么说的: if you use this SDK with Visual Studio 2010, installing the SDK requires installing the foll owing packages in this order. 注意有if,如果没安装SDK 7.1,不用鸟这部分内容. ●第三方库: 1.ICU-采用动态编译,X64 Debug和Release都编译了,并且分开存贮. 2.SSL-采用动态编译,X64 Debug和Release都编译了,并且分开存贮. 第三方库的编译,一定要按要求走到最后一步,编译出来最终是什么目录结构(即安装后),就是什么目录结构,别改. 第三方库的编译,使用Debug版本和Release版本都可以,关键是lib和dll要对应.比如xd.lib 要和xd.dll相对应;x.lib要和x.dll.当然有的库编译出来的D/R名字一样,对于debug版本,它没有在名字后面加后缀d. 第三方库的编译,没有必要编译两个配置,一个Release配置就够了,Qt官方就是这么干的,并且官方用的动态编译. ●注意事项: [注意]在第一次编译中,编译了ICU和SSL的X64的D和R两个版本(动态编译,所有测试用例

bluez how to

Linux BlueZ Howto Bluetooth protocol stack for Linux Jan Beutel j.beutel@https://www.360docs.net/doc/7a17864016.html,,Maksim Krasnyanskiy maxk@https://www.360docs.net/doc/7a17864016.html, 14th November2001 1Introduction BlueZ is the of?cial Linux Bluetooth stack.It provides support for core Bluetooth layers and protocols. Bluez has many interesting features: Flexible,ef?cient and modular architecture Support for multiple Bluetooth devices Multithreaded data processing Hardware abstraction Standard socket interface to all layers Currently BlueZ consists of(see also?gure1): HCI Core HCI UART,USB and Virtual HCI device drivers L2CAP protocol module Con?guration and testing utilities 2Setting up BlueZ 2.1Obtaining BlueZ Y ou can download the BlueZ source from https://www.360docs.net/doc/7a17864016.html,.There is also an up to date CVS tree available there.

qt在windows_安装配置

Installing Qt/Windows 本人在windows下使用Qt所以下面介绍一下在windwos安装Qt的情况。 qt在windows安装,很简单,我们按照下面的步骤: 第一步:准备安装软件 请大家准备好软件qt-win-opensource-4.0.1-mingw.exe 和devcpp-4.9.9.2_setup.exe 如果大家没有软件,可以到官方网站下载,或者去https://www.360docs.net/doc/7a17864016.html,下载. 第二步:安装软件 大家先安装devcpp-4.9.9.2_setup.exe,详细过程就不讲了,windows软件大同小异 接下来安装qt-win-opensource-4.0.1-mingw.exe,安装过程也差不多,大家在安装过程中 到了MinGW时,要注意在find MinGW (previously installed MinGW)是选择你安装的devcpp 的目录 比如:c:Dev-Cpp 其它的就不用管了,一直用‘next’就可以了 第三步:编译应用程序 1. 在这时就安装好了软件,接下来,我们来编译运行一个程序。 在记事本中我输入源代码 //////////////////////////////////////////////////// #include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.resize(100, 30); hello.show(); return app.exec(); } //////////////////////////////////////////////////// 我们保存文件为:helloworld.cpp 2. 接下来我从开始菜单进入Qt 4.0.1 command Prompt 在dos下进入文件的目录。 运用qmake工具编译文件。 a. 在进入要编译的文件目录,输入qmake -project 这个命令主要是生成工程文件 b. 接下来我们输入qmake,编译工程文件 c. 接下来我没输入make 最后我们编译,这时如果没有错误,可执行文件就生成了。 第四步:运行程序 找到生成的release或者debug目录下的可执行文件,运行就可以了。

【IT专家】Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确认 qmake

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确 认qmake 2017/06/02 449 patchelf 工具可以修改已编译运行程序的依赖库位置和指定库链接器 ?patchelf --set-rpath ?patchelf --set-interpreter ?通过这个工具https://github/probonopd/linuxdeployqt如果自己编译不了,也可以下载现成的 ?https://github/probonopd/linuxdeployqt/releases ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict 并为成功,生成的lib目录下的so文件很少。 ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict -appimage 也未成功,但lib 生成了很多so文件 ?使用patchelf --set-rpath /opt/Qt-5.7-static/lib/:./lib ShanbayDict 修改rpath后,ShanbayDict可以独立运行了,连同lib一起拷贝到新安装的Ubuntu 16.04系统中,也能运行了。 ?ldd ShanbayDict 显示,rpath已经指向./lib目录 ?patchelf可以通过sudo apt installpatchelf 安装 ?2017年2月24日 ?Qt 5.8编译的Qt程序 ?设置环境变量,确认qmake -v 是自己使用的Qt版本,如果不是,解决办法是: ?export PATH=/home/lieefu/Qt5.8.0/5.8/gcc_64/bin:$PATH ?创建qml目录,把/home/lieefu/Qt5.8.0/5.8/gcc_64/qml 目录下用到的模块复制过来,我的app用到了三个QtQuick、QtQuick.2、QtMultimedia。 ?增加plugin中platforminputcontexts 包括libfcitxplatforminputcontextplugin.so文

QT编译与配置(静态库与静态运行时库)

QT编译与配置(静态库与静态运行时库) Qt是一个跨平台的应用程序程序框架,可以运行于Windows、Linux、Mac、S60等平台,自从其开源的授权协议由GPL变为LGPL后就变得流行起来。LGPL协议允许使用者开发私有程序而不开源,前提是Qt库必须以动态链接的方式加入程序。 打开Qt的下载页面,可以看到SDK和Library的下载链接。 SDK提供了完整的开发环境,而Library仅仅包含代码和编译出的库。这里的库都是动态链接的Release和Debug版库(相应的Configure参数为-debug-and-release -shared)。而如果需要静态库,就要自己编译了,如果不想自己编译,qtcn论坛上有不少已编译的静态库可以直接下载,地址 https://www.360docs.net/doc/7a17864016.html,/bbs/read.php?tid=11800。 如果要自行编译,那么备好一份代码就够了,ftp://https://www.360docs.net/doc/7a17864016.html,/qt/source/下有Qt的各个版本的代码下载 下面介绍一下Windows下的静态库编译过程 编译代码有基本的两步,configure和make,不过在这之前还要设置好编译环境。如果是VS,只要执行“Visual Studio 200X命令提示”就行了,如果是Mingw,需要把mingw下的bin目录加入到环境变量中。 这里推荐的configure命令是 configure [-release|-debug|-debug-and-release] -static -no-qt3support -no-webkit -platform [win32-g++|win32-msvc2008|...]

Linux蓝牙协议栈OpenBT及其应用程序开发

2003.10 电子设计应用  www.eaw.com.cn52 引言 Linux蓝牙协议栈主要有三个:OpenBT、BlueDrekar、BlueZ,其中OpenBT被认为在性价比上超过BlueDrekar和BlueZ,可运行于X86、ARM、MIPS、PowerPC等硬件平台,与任何2.x版本的Linux内核兼容,支持JAVA。本文介绍了OpenBT的 体系结构及其对互操作性的影响,并以客户机/服务器(C/S)实例说明如何在OpenBT上开发蓝牙应用程序。 OpenBT的体系结构 使用不同蓝牙协议栈的设备在通信时往往会遇到互操作性问题。开发者需要了解各种协议栈的体系 结构并考虑其差异。通过分析源 码,本文给出了如图1所示的OpenBT的体系结构。OpenBT包括HCI、L2CAP、SDP、SP、Networking、OpenBT Utility、后台 程序、内核接口8个模块,分别解释如下: * HCI模块由Driver、Transport子模块构成。Driver负责HCI命令、HCI事件和HCI数据接口;Transport提供USB、RS-232、UART的驱动。 * L2CAP模块由State Handle、Security子模块构成。State Handle负责运行L2CAP的状态机和数据的分段组装;Security负责L2CAP级别安全管理。 * SP模块由RFCOMM、串口仿真子模块组成。RFCOMM负责完成蓝牙RFCOMM协议中所描述的内容,核心是一个RFCOMM状态机;串口仿真负责提供接口。 * SDP模块负责完成蓝牙SDP协议中所描述的内容,在功能上分为XML文件管理、SDP查询处理和SDP响应处理三部分。 * Networking模块由PPP、Modem Emulation、TCS子模块构 Linux蓝牙协议栈OpenBT 及其应用程序开发 ■ 西安交通大学电信学院 马毅华 冯恩信 摘 要:本文分析了OpenBT软件体系结构,根据客户机/服务器模型的实例,介绍了OpenBT应用程 序的开发,并提出了一种实用的开发模式。 关键词:蓝牙技术;Linux;OpenBT

Qt开发环境下载和安装

Qt开发环境下载和安装 (2015.01.18 by Winland) Qt是跨平台的图形开发库,目前由Digia全资子公司Qt Company 独立运营,官方网址:http://www.qt.io/ 也可以访问Qt项目域名:https://www.360docs.net/doc/7a17864016.html,/ Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。 基于Qt的软件非常多,其中最知名的要数Linux桌面系统KDE(涵盖无数以K打头的应用软件)。国内WPS for Linux版本、360 for Linux也是使用Qt库开发的界面。只要有C++基础,Qt是很容易学的,而且开发跨平台的程序也容易。目前主流使用的Qt库有Qt4和Qt5两个大版本,下面介绍其在Windows系统里的下载和安装。 一、Qt4开发环境下载安装 首先进入下载页面http://www.qt.io/download/ 有四个使用方式,开源社区版、移动版、专业版、企业版,后面几个要钱的,这里选择第一个GPL/LGPL的下载就行了。 进入开源版页面: http://www.qt.io/download-open-source/

上面大按钮Download Now是下载在线安装版,其实只是一个下载工具,并不是真正的Qt 开发库。可以自己下载离线安装包,注意页面的“View All Downloads”,点开之后就能看 到离线包。目前看到的全是Qt5.4.0版本的,那Qt4的在哪呢? 把上面页面拖到最下面: 旧版本包就是最后一个链接:http://download.qt.io/archive/

相关文档
最新文档