Linux 下重新编译Windows下生成的Qt工程
原址:https://blog.csdn.net/Fanpei_moukoy/article/details/21613703
以下内容亲测通过
其实qt才是真正的跨平台,java简直太搞笑了,假跨平台。
只要在ubuntu下把qt的环境搭建好了,直接将windows下的工程文件整体考到ubuntu中,然后就像在windows上使用qt creater一样去使用它,直接编译、运行!出来的界面真美观!
-----------------飘逸的分割线-------------------------------------
1、 把在windows平台下,用Qt Creator创建好的工程整个文件夹拷贝到linux系统下(如果是在虚拟机下安装的linux,可以用U盘拷贝或者共享文件夹的方式)。
2、 修改文件夹及文件夹下所有文件的访问权限。首先,切换到文件夹所在的目录(我的在/home/exam下),然后再修改访问权限,命令如下:
chmod -R 777 文件夹
假定我的文件夹叫mainWindow,那么命令为:chmod -R 777 mainWindow
如下图:
修改访问权限后,可以用命令:ls -l mainwindow 查看修改之后文件的属性。
3、 打开Qt Creator,如下图:
点击“Open Project...”打开拷贝过来的工程mainWindow。如下图:
打开工程之后,随便打开一个工程中的头文件或者源文件,如果编辑器的顶部出现错误提示:
表明文件中含有编辑器无法识别的字符,一般是在Windows平台下输入的中文字符,你会发现文件中的中文字符全部变成了乱码。此时,编辑器无法修改文件的内容。这是因为两个系统使用的默认编码不同造成的。这时,点击上图中错误提示中的“Select Encoding”按钮(或者通过选择菜单“Edit”下的“Select Encoding”按钮),弹出一个文本编码的对话框,如下图:
选择“GB2312”,点击按钮“Reload with Encoding”根据编码重新载入文件,即可显示文件中的中文字符。
如果弹出的文本编码对话框中没有“GB2312”,说明QT Creator 默认没有加载相关的dll文件(在linux下后缀名为.so),解决方案如下:
第一步:根据Qt Creator的安装目录,打开路径
“QtSDK\Desktop\Qt\473\gcc\plugins”发现里面有一个“codecs”文件夹,其下有四个文件,如下图:
红色框中的是路径,绿色框中的为四个编码库文件。
第二步:把codecs整个文件夹拷贝到目录“QtSDK\QtCreator\bin”下,拷贝之后如下图:
红色框中的是路径,绿色框中的为拷贝来的文件夹。
第三步:重新打开Qt Creator,打开一个文件,选择“Edit”菜单下的“Select Encoding...”,此时弹出的文本编码对话框中就已经出现了“GB2312”。
4、编译程序。
因为在windows平台下配置的编译路径在linux中无效,所以在进行编译之前,一般要先对工程进行配置,如下图:
如图所示,点击左边的“Projects”按钮,即可弹出项目配置界面,可以在上面的“Edit Build configuration”中选择Debug或者Release,在下面的“Build directory”中选择新的编译路径。
路径配置完成之后,就可以对程序进行调试运行,如下图:
红色框中的是运行按钮,绿色框中的是调试按钮,点击绿色框中的按钮,开始调试运行。调试通过,程序正常运行,如下图(我的是一个文本编辑器程序):
这时会发现程序中有乱码的情况,研究发现是程序中直接使用的中文字符串没有显示出来。
解决方案是在主函数中加入相应的字库,如下所示:
添加一个头文件#include <QtextCodec>,添加了图中红框中的两行代码,再次编译运行程序,如下:
程序正常运行。嵌入式实验
Linux 下重新编译Windows下生成的Qt工程相关推荐
- linux node gyp 编译,windows下安装node-gyp
什么是node-gyp? gyp是一种根据c++源代码编译的工具,node-gyp就是为node编译c++扩展的时候使用的编译工具. 最近在研究native script需要使用到node-gyp,遇 ...
- python编译exe文件太大了_python编译windows下可执行的exe文件
python编译windows下可执行的exe文件的操作流程: 1.在安装python环境的windows下,安装 pyinstaller,请在dos下执行如下命令: pip install pyin ...
- Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe
Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe 文章目录 Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成e ...
- U盘刻录linux系统后在windows下无法识别完整容量
U盘刻录linux系统后在windows下无法识别完整容量 问题描述: 将linux系统刻录进U盘,会导致原本比如16G的U盘在windows上只能显示2m左右的容量. 这实际上是因为windows系 ...
- linux下gcc编译c文件生成可执行文件的四个步骤
Linux下gcc编译c文件为可执行文件分为四个步骤: 分别是 预编译.编译.汇编.链接. 1.预编译( 生成 hello.i 文件) 预编译的处理规则: 1. 将所有的 "#define& ...
- linux c++开发_Linux/Windows下进行C/C++开发的差异
1. 平台差异简介 Windows 和Unix是当前两大主流操作系统平台,基于C/C++的开发人员经常会面临这两个平台之间的移植的问题.Unix作为一个开发式的系统,其下有出现了很 多个分支,包括Su ...
- cygwin学习linux命令,cygwin 在windows下使用linux命令的方法
cygwin 在windows下使用linux命令的方法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 但是cygwin ...
- eclipse linux windows 乱码,Ubuntu下Eclipse打开Windows下的工程文件乱码解决办法
Eclipse在Windows下默认使用的是GBK(包括GB2312)编码,而在Linux系统默认使用的是UTF-8编码,并且eclipse编码设置下拉列表不提供GBK编码可选项.如果eclipse打 ...
- 怎么把linux虚拟机硬盘扩容,Windows下虚拟机Linux(CentOS8)扩容设置 - 磁盘扩容中的坑和解决方法...
摘要:[原创]转载请注明作者Johnthegreat和本文链接 由于虚拟机空间不足,为了避免重装虚拟机,做了一次无损扩容. 过程中的报错如下: 为了详细记录,这里将整个过程详述如下: 一.问题和需求 ...
最新文章
- AI 利用BP算法及Sigmoid函数,研究函数f(x)=2sinx-0.7的逼近问题-实验报告
- 巧用Excel记录单快速输入数据
- 通用权限管理系统组件 给信息管理系统加一个初始化的功能,调用存储过程
- java 网络(socket)
- IOS基础:声音调用
- python--通过xpath相对节点位置查找元素(续)
- Apache 2.2 + Php 5.1 安装问题解决[原创]
- Pytorch(一) --线性模型
- RobotStudio Smart组件创建动态夹具
- tomcat启动报错APR问题
- 使用开源库 Objective-C RegEx Categories 处理正则表达式
- C#设计模式---迭代器模式(Iterator Pattern)
- tomcat 莫名奔溃问题
- 【交换安全】DAI - Dynamic ARP Inspection 详解/arp欺骗/gratuitous arp
- vb3计算机,2014年计算机二级考试VB试题 3
- Notes V11内存不足?
- RuntimeError: nms is not compiled with GPU support
- 基于Kubernetes构建企业容器云【入门实战篇】- 手动制作CA证书(二)
- 请教统计对应表字段为空的字段数
- NFC开发 —————实用工具以及开发文档(四)
热门文章
- TIMING_06 VIVADO环境下的时序约束 之 输入延迟约束
- 找不见matlab保存的txt,为什么自己保存的M文件在电脑里找不见,看不见而matlab里却能打开也能看到?...
- 显示农历天气时钟小部件下载_安卓最强桌面小部件:Zooper Widget
- 浏览器卡怎么办_【十全十美】宽带断线、wifi连不上怎么办?自助排障帮到你!...
- 电子元器件首饰!送给你喜欢的女孩!
- 17种元器件PCB封装图鉴,美翻了
- LL-verilog 1000HZ分频为1HZ使用三个十位计数器合成
- VHDL数字秒表的设计
- mysql索引底层图_MySQL索引底层数据结构
- java刘保_[SSH] Eclipse+Struts2的简单应用