qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

1、qwt下载地址:https://sourceforge.net/projects/qwt/files/qwt/

2、关于creator的几点说明:

1)mingw版的qt和msvc版Creator的区别:

mingW版Creator集成了编译器,不需要额外安装。MSVC版使用的是VS的编译器,需要额外安装vs,但官方提供的creator都是用MSVC编译(包括mingW版),所以Creator的插件,必须使用MSVC编译,才能被识别。如下图使用的Creator,使用Qt5.7.0  MSVC2013编译,那么我们编译qwt也需要使用这套来编译,所以使用mingW版Qt的想要用上自己编译的qwt就需要在装上Qt5.7.0和vs2013,使用这一套去编译。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

2)Creator的插件文件夹和designer插件文件夹不一样,必须区分清楚,要放在creator上的,一般是下面这个路径C:\Qt\Qt5.7.0\Tools\QtCreator\bin\plugins\designer  ,Qt根目录的Tools文件夹下。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

     3)正确区分产生的文件是release还是 debug 版本,名称后面带d的是debug版本,如下图的libqwtd.a和qwtd.dll,不带d的是release版,qwt编译两个版本都会生成。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

    4)正确区分产生的文件是mingw版还是msvc版(很重要),这决定了你产生的dll文件放在插件文件夹下后在creator界面编辑中能否看到控件。

库文件类型为.a的是mingw版本:

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

类型为.lib的是msvc版本:

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

通过库文件,我们可以知道链接文件.dll编译出来是属于哪个版本,使用msvc编译的creator就把同文件夹下有.lib文件的qwt_designer_plugin.dll复制到creator的插件文件夹下。

以上就是我们自己编译所需要了解的关于creator和编译方面的一些基础知识了。

3、关于qwt编译报错

当我们完事具备只欠东风就开始照着网上的各种博客和教程开搞了,结果发现编译的时候报U1077错误:找不到NMAKE,其实不是找不到nmake编译器,它的意思是找不到文件来NMAKE,所以这压根不是环境变量配置的锅,不过环境变量配置正确还是很重要的,网上有很多教配置的我就不多说了。

     我自己也在这里卡了很久,找不到解决方案,因为我一切都照着教程的顺序一步一步来,后来又找到个说用命令行nmake的,试了试发现命令行nmake的产生的只是mingw版的插件,只能放到designer中而放不到creator中,至于从他们可以编译到我今天不能编译这种间发生了什么,目前还不大明白。

     今天我突发奇想,换个顺序编译,于是又了下面的教程。

4、编译教程第一步:编译creator需要的dll插件

1)使用Qt Creator打开qwt/designer中的designer.pro这个工程(这里不是像其他教程一样直接打开qwt.pro工程,这是关键点)

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

2)配置好构建套件,使用msvc reliease编译

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程


3)菜单栏中选择构建->执行qmake

4)点击左下角的小锤子,开始构建,等待一致两分钟,构建完毕,根据我们的构建页面,我们构建的目录为C:\Qt\qwt-6.1.3\designer,它会按照pro文件来编译到对应的文件夹。

5)打开这个文件夹下的\plugins\designer目录,里面有编译好的库文件,确认是.lib文件而不是.a,这里我们只把qwt_designer_plugin.dll这个文件复制一下,粘贴到creator插件的目录中。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

6)重新打开creator,随意创建一个带UI的工程,点开UI,你就会发现控件已经可以在creator上显示了,我们的第一步也就完成了。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

5、编译教程第二步:编译qwt外部链接库

1)使用creator打开qwt.pro这个工程(像其他教程一样)。但是这里需要区分开,如果下载的mingw版本的qt creator用mingw版creator打开工程编译,下载的msvc版就继续用msvc编译,因为我们的库文件是给编译器用的,所以使用相应的编译器产生对应的版本,我两个版本都生成了,所以我还是继续以msvc为例。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

2)配置好构建套件,release,使用对应的编译器,与上面一样,我就不贴图了。

3)qmake

4)小锤子

5)我们在qwt-6.1.3\lib这个文件夹下,找到我们编译需要的文件,找到以下四个文件复制,放到我们自己建立的库文件夹里,不建议放在qt自带的库文件夹里。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

6)这里区分好编译出来的是msvc版还是mingw版,如果你装了两个版本的qt是很容易混淆的(吃一堑长一智),我的库文件夹如下:

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

mingw版库文件:

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

msvc版库文件:

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

6、编译教程第三步:打包我们外部链接库需要的头文件

1)打开qwt根目录下的的src文件夹,搜索*.h文件,全部复制

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

2、在我们自己的库文件夹下,建立include目录,把复制的全扔进去。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

3、打开我们在4.6部分为了查看creator插件是否安装成功建立的工程,右键工程名选择添加库,然后选择外部库

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

4、以mingw下的工程为例,我们打开之前放在自己库文件夹的lib文件,mingw为*.a文件,msvc为*.lib文件,选择release库文件,debug版的软件会自动帮我们添加

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

5、修改pro文件,将我们库里的头文件目录导入,不会写pro没关系,照葫芦画瓢

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

前两个是我们添加外部库软件自动添加的路径,第三个依照第一个写的头文件包含,win32的那一长串也是添加外部库自动生成的,我们不用管。

7、编译教程第四步:开始策马奔腾

1)随意拖入一个控件,设置好objectName

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

2)调用控件的方法来设置值,最后试着debug或者release一下,run起来,我的程序可以得到下面的图:

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

我们可以看到旋钮已经指向了2.233的位置了,大功告成。

qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程qwt-6.1.3+qt5.7.0+mingw or MSVC版creator编译配置流程

第一次写博客,比较啰嗦,也有可能有说错的地方,望大家体谅。