​​​​​​​​​​​​将vs+Qt的工程从windows平台移植到linux下_崔杰城的博客-CSDN博客_windows下的qt工程移植到linux下

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”,所以得设置环境变量),执行命令:


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

接下来执行命令:


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

然后执行命令:


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

然后执行命令:

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

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

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

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

补充说明:
编译程序提示/usr/bin/ld: 找不到 -lGL 原因是linux没有装opengl

解决方法

安装opengl相关的依赖库

sudo apt-get install freeglut3-dev

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

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

    windows下Qt的开发人员常用vs+Qt插件进行Qt桌面程序的开发.因为Qt是跨平台的,所以开发完成后如果需要把程序移植到linux下运行,只要把vs的项目工程放到linux下,编译即可.下面介绍 ...

  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. windows 打包 python 然后linux执行_使用pyinstaller打包python源代码,成为linux/windows下可执行文件...

    pyinstaller,打包python源代码,成为linux/windows下可执行文件,多平台 下载:http://www.pyinstaller.org/static/ http://www.p ...

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

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

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

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

最新文章

  1. 安装neo1973的GPS驱动[转]
  2. # 利用fragment实现界面跳转
  3. 2010年8月和9月成果
  4. TypeError: HashUpdate fail
  5. 什么叫事务?Java如何处理事务呢?
  6. windows系统gaussian和GaussView的安装
  7. 免费智能AI文章生成器-只需要输入关键词自动生成文章的软件
  8. MySQL InnoDB引擎如何保证事务特性
  9. [渝粤教育] 南京师范大学 中国古代文学(一) 参考 资料
  10. CloseHandle(),TerminateThread(),ExitThread()的区别
  11. 微信与多闪之争背后,好友关系链到底是如何窃取的?
  12. 语音通知API - onealert的语音通告替代调研
  13. 等视距游戏 地图X和Y转换
  14. 腾讯云php小程序,使用微信小程序和腾讯云实现直播功能
  15. 模板匹配理论的优缺点,模板匹配和神经网络
  16. 【JVM学习-3.6】JVM运行时数据区--方法区
  17. JavaWeb+Tomcat+Servlet使用<c:foreach>标签时,jsp等网页文件获取不到request域中的数据
  18. 大笨钟 (10 分)
  19. C#中使用7Z进行压缩解压
  20. IDEA2022版教程下(快键键总结、Debug断点调试总结、22版本idea创建各种工程、关联数据库、常用插件)

热门文章

  1. 步数能捐款还能换保费?这样的轻松保还是第一次见
  2. Linux查看用户登录信息-last
  3. 程序员不要对自己做的20件事
  4. js 处理姓名和身份证号中间部分用*****代替
  5. 如何在百度百科里创建一个百科词条,百度百科官网创建词条步骤方法
  6. 注册外贸公司需要注意的问题
  7. QtCreator开启宏录制
  8. 兽人物界面显示世界服务器关闭,玩家意外解开WOW谜题 服务器被世界Boss入侵?...
  9. java婚纱影楼管理系统论文_基于jsp的婚纱影楼管理系统-JavaEE实现婚纱影楼管理系统 - java项目源码...
  10. 嘉立创专业板stm32拓展板十分钟快速入门