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文件

然后执行命令:

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

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

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

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

windows下Qt的开发人员常用vs+Qt插件进行Qt桌面程序的开发。因为Qt是跨平台的,所以开发完成后如果需要把程序移植到linux下运行,只要把vs的项目工程放到linux下,编译即可。下面介绍把vs+Qt的工程从windows平台移植到linux下的方法。演示程序的windows开发环境是win7+vs2015+Qt5.9(Qt安装包为qt-opensource-windows-x86-5...
STEPS: 1 因为我是在 windows qt 插件上写的 工程 没有.pro文件,所以在 Linux qt Creator 上新建一个 工程 ,注意名称要一样,主界面的类名都要一样。建好了不放心可以用xml 方式打开ui文件,对照一下classname,如果不对应要全局替换。 2 下面就把原来 工程 的.cpp、.h、qrc文件(自己程序用到的都要,比如我用的json类库,就...
Qt ,面向C++图形界面的一种架构,对于GUI有很好的扩展,通过近一个月的学习和摸索,终于实现了 Windows 下的软件代码 移植 Linux ,实现了软件的跨 平台 。这其中走了不少弯路,遇到很多问题,主要是通过Internet找资料,上论坛求助,才使得最终成功,所以这也是我写这篇博文的初衷,希望能通过自己的经验总结,能够让更多像我一样的菜鸟少走弯路,走的更远。。。          首先,介绍一下:为
1、sudo apt-get install clang 2、sudo apt-get install build-essential 3、sudo apt-get install lib qt 4-dev
学习OpenGLES 该项目主要基于的代码,并采用了一些跨 平台 功能。 所有呈现代码都在前端和后端分开。 gui或窗口在前端运行,而opengles渲染在后端运行。 前端代码仅用于表示,后端OpenGLES仅用于呈现计算,而与GUI无关。 您可以选择自己喜欢的显示表面,例如GLFW3,xcb(X11),WIN32UI和 Qt 。 您只需要创建一个本机窗口句柄(例如HWND和xcb_window_t),并将该窗口句柄交给EGL即可创建渲染表面。 它很容易集成到任何前端框架中,并且该项目显示了 Qt 的示例(不使用QOpengGLWidget)。 支持系统: 现在: Linux (主要)Androi
1 linux qt 编译出现undefined reference to错误 **1.1 前提条件:** 1. 在一个test1.cpp里面调用test2.cpp里面的一个实现函数; 2. 这个函数是`extern` 声明的; 3. 已经在test1.cpp加入test2.h头文件,并且F2能进入到此函数 > test2.cpp、test2.h,不是一个class类,只是单纯的一个声明定义函数,一个实现函数。 **1.2 bug:** windows 下能够编译通过 linux 下编译出现undefine
3. 使用Visual Studio打开 Qt 工程 在Visual Studio中打开 Qt 工程 文件时,需要首先安装 Qt 插件,可以在Visual Studio的插件管理器中搜索安装 Qt 插件。 4. 编译运行 编译时需要设置 Windows 平台 的编译器,并为Window 平台 重新编译 Qt 项目。 5. 调试 在 Windows 上不能调试 linux 平台 二进制代码。您需要为 Windows 平台 重新编译应用程序,并使用Visual Studio的调试功能进行本地调试。 在进行 移植 之前,要根据 Windows 平台 的环境设置,修改 Qt 工程 的配置文件。如更改编译工具和路径等设置,以保证在 Windows 下的使用。 0x010D99A9 处有未经处理的异常(在 XXX.exe 中): 0xC00000FD: Stack overflow (参数: 0x00000000, 0x06772000) 44351 weixin_45445298: msys编译ffmpeg时报错:D:\msys64\tmp\ccpLYYu9.s: Assembler messages: D:\msys64\tmp\ccpLYYu9.s:357: Error: operand type mismatch for `shr' D:\msys64\tmp\ccpLYYu9.s:424: Error: operand type mismatch for `shr' D:\msys64\tmp\ccpLYYu9.s:491: Error: operand type mismatch for `shr' make: *** [ffbuild/common.mak:60: libavformat/adtsenc.o] Error 1 怎么解决? Qt界面刷新大量数据时,界面卡死的解决方法以及QTableWidget和QTableView加载速度的比较 weixin_40867769: vector大小1000W后,会crash vmware下vmdk文件越来越大的解决方法探讨 weixin_51199447: +1刚成功