windows下Qt的开发人员常用vs+Qt插件进行Qt桌面程序的开发。因为Qt是跨平台的,所以开发完成后如果需要把程序移植到linux下运行,只要把vs的项目工程放到linux下,编译即可。下面介绍把vs+Qt的工程从windows平台移植到linux下的方法。演示程序的windows开发环境是win7+vs2015+Qt5.9(Qt安装包为qt-opensource-windows-x86-5.9.0.exe,Qt插件为qt-vs-tools-msvc2015-2.1.1.vsix)。Linux版本为ubuntu14.04,安装在vmware11下。ubuntu下安装的Qt版本为Qt5.9(Qt安装包为qt-opensource-linux-x64-5.9.0.run,这里最好保证linux和windows下的Qt版本一致,否则可能编译会出现问题)。

演示程序在windows下运行效果如下图所示:

首先把vs的工程拷贝到ubuntu里面(可以用虚拟机的共享文件夹功能),把工程里面的目录Debug、GeneratedFiles、Release、Win32、x64和文件...user、...sln、...vcxproj、......filters删掉。这里根据vs版本的不同删除的文件和目录也可能不同。只要保留.h、.cpp、.qrc(没有这个文件编译出来的Qt项目会显示不了图片)、.ui文件和Resources目录就可以了。

然后进入工程目录,设置qmake的环境变量(默认在linux里面安装完Qt5.9是找不到qmake的,执行qmake会提示“could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake':No such file or directory”,所以得设置环境变量),执行命令:

export PATH=/opt/Qt5.9.0/5.9/gcc_64/bin:$PATH

(根据Qt安装路径不同命令也可能不同,这里我Qt的安装目录是/opt/Qt5.9.0,所以执行这个命令。用这种方式设置环境变量的好处是:只要关闭终端,环境变量就失效了,所以可以在linux下安装多个版本的Qt,设置多个版本的qmake)

接下来执行命令:

qmake -project QT+=widgets

(这里如果是Qt5的话不能直接执行命令qmake-project,否则接下来make的时候会报错:fatal error:uixxxxx.h:没有那个文件或目录。Qt4可以直接执行命令qmake -project。执行完这一步目录下会生成XXX.pro文件)。

然后执行命令:

qmake

执行完这一步在目录下会生出Makefile文件

然后执行命令:

make

执行完这一步在目录下会生成可执行文件,运行即可。演示程序程序的运行效果如下:

PS:接下来分享一些我移植时踩到的坑。在刚开始移植的时候,我在vs生成了.pro和.pri配置文件,然后一起拷贝进ubuntu里面。用QtCreator通过.pro文件打开工程,结果编译的时候发生错误如下图所示:

不使用QtCreator,使用命令行编译会也一样遇到这个错误如下图所示:

根本原因是通过vs生成的pro配置文件是有问题的,虽然可以修改,但是比较麻烦,特别是对于新手看不懂pro内容的同学来说。所以如果是想要把vs的Qt项目移植到linux下,最好不要通过vs生成pro文件。只有当拷贝到linux下时才通过qmake -project命令生成pro文件。

将vs+Qt的工程从windows平台移植到linux下相关推荐

  1. 将vs+Qt的工程从windows平台移植到linux下_

    ​​​​​​​​​​​​将vs+Qt的工程从windows平台移植到linux下_崔杰城的博客-CSDN博客_windows下的qt工程移植到linux下 windows下Qt的开发人员常用vs+Qt ...

  2. Windows C++移植到Linux下运行需要怎么做?(以动态甜甜圈为例)

    本文将(https://zhangrelay.blog.csdn.net/article/details/109863427)程序在Linux下运行. 具体版本为Ubuntu 20.04. 程序如下: ...

  3. Linux 工程向 Windows 平台迁移的一些小小 tips

    Linux 工程向 Windows 平台迁移的一些小小 tips VS2013 C++11 Visual Studio 2013 没有做到对 C++11 所有的支持,其中存在的一个特性就是 In-cl ...

  4. Git下载代码到Windows再拷贝到Linux下编译时要关闭换行符自动转换

    Git下载代码到Windows再拷贝到Linux下编译时要关闭换行符自动转换 一.各操作系统下文件换行符 二.TortoiseGit下载Github代码关闭文件换行符 三.示例说明 1.开启换行符自动 ...

  5. Qt安装图解(Windows平台)

    说明: 本节介绍 Qt 5.9.0 在 Windows 平台下的安装,请提前下载好 Qt 5.9.0. Qt安装包的下载具体步骤:Qt安装包下载(Windows平台). 目前较高版本的 Qt 仅支持 ...

  6. 挣脱Windows的枷锁:MPlayer - linux下的暴风影音

    很多人不使用linux桌面,其中一个很大的原因就是离不开Windows下的软件,其实linux的开源社区里有得的好用的工具,关键是看您会不会用而已,所以就有了我们的这个"挣脱Windows的 ...

  7. wine —— windows软件移植到Linux系统

    导读: wine是我们在Linux下运行部分Windows应用程序必不可少的工具. 接下来主要了解wine服务的工作原理.wine服务的部署以及windows应用程序在统信UOS操作系统中的安装. 一 ...

  8. Socket程序从windows移植到linux下需要注意的

    )头文件 windows下winsock.h或winsock2.h linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in. ...

  9. windows 远程访问别人的linux下的ftp服务器,linux与windows之间使用ftp相互访问(CentOS提示ftp:command not found)...

    启动linux及windows系统,这里默认linux系统的IP为192.168.1.15.打开windows的DOS终端,首先输入 :ftp 192.168.1.15 在使用账户和密码登陆:登陆格式 ...

最新文章

  1. 厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶...
  2. 高二计算机水平测试题,高二计算机学业水平测试 模拟试题(附答案)
  3. linux 不同ip 相同mac arp,linux – nmap和arp-scan不一致的IP-MAC结果
  4. java开发实战经典答案百度云,含面试题+答案
  5. ZuulFilter的使用场景
  6. Bootstrap 3 加半星 Star rating with half-stars
  7. sharding分表后主键_分库分表【Sharding-JDBC】入门与项目实战
  8. linux查看接口的命令,linux shell命令查看接口索引--ip link show
  9. C语言程序每个语句都必须有行号,2012年计算机二级C语言程序设计基本概念考点归纳...
  10. gitbub(cp:http://www.linuxidc.com/Linux/2014-03/97821.htm)
  11. 从祖师级到新生代,48位开发者的「武功秘籍」
  12. Java后台调用高德地图api返回{status:0,info:UNKNOWN_ERROR,infocode:20003}
  13. mysql group by 命令_MySQL常用命令(八)--GROUP BY、HAVING、SELECT子句的顺序
  14. 盘点世界最牛的90后黑客,厉害到你无法想象的程度
  15. 2021年中国电饭锅(电饭煲)行业现状及前景分析:个性化消费推动市场向高端、智能化发展[图]
  16. 形式与政策部分开卷题目及答案
  17. Python文本分析---笔记
  18. EOSRAM终扩容,再谈如何在币圈做“价值投资”!
  19. FPU烤机是什么意思 FPU烤机用什么软件
  20. 麦克风声源定位原理_基于麦克风阵列的声源定位算法之GCC-PHAT

热门文章

  1. [App探索]JSBox中幽灵触发器的实现原理探索
  2. 极品飞车服务器维修,极品飞车ONLINE-官方网站-腾讯游戏
  3. PS系列之 -- 利用蒙版取消图片衔接的痕迹
  4. VC++:鼠标的使用
  5. lol卡60帧解决方案 亲测有效
  6. Elasticsearch7.6.1(Windows篇)
  7. 广告联盟中CPC、CPS、CPA、CPM、CPV广告有什么区别
  8. 蓝牙uuid是什么意思_HIFI高保真+实用设计带你打开真无线蓝牙耳机的正确使用方式...
  9. gmock入门(转)
  10. java代码设置布局的宽和高