标签:
花了一周时间用于添加QWT,大概是因为QWT的版本更新的原因。按照之前学姐发的文档配置,虽然可以把QWT控件加入Designer中,但是完全无法编译。我才觉得是之前的配置方法出了问题,可能已经不适合最新版本的QWT了。重新看了一下配置过程,发现之前的配置方法出现了一个致命的错误——没有添加静态链接库.a文件,之前的步骤虽然能添加控件进程序这是没问题的,然而.a文件是编译exe需要的。如果只添加控件,却不链接静态库,虽然IDE能够通过头文件使用qwt库的函数,但这样是不能通过编译的!
果然,我在头文件里加上 LIBS+=绝对路径/libqwtd.a之后编译果然通过。完全可以使用qwt的功能。下面是我编译的结果。
但是在网上找不到相关的资料,也没人按照我这个方法解决QWT无法编译的问题。不知道这是新版QWT的共性问题,还是我在配置QWT的过程中忽略了什么,导致此处如此麻烦。
最后还要说几点问题,按照如上方法添加静态库,需要遵守以下几点:
(1)凡是用到QWT控件的工程,其.pro文件必须链接.a静态编译库。
(2)一个工程不允许同时包括以d结尾的debug静态库和不以d结尾的release静态库。如果代码中同时包括,则只链接第一次编译时行号数小的的静态库。
(3)一旦链接debug库,除非”make clean 再重新make后更改pro文件“,否则只能按debug方式运行(release也一样);即使在删除pro文件中删除该库也无用。
(4)找不到头文件时不要紧张,试试再文件名前加上QWT/就好了。
上述方法只在我的机子上做过实验,不一定有效。如果在配置之初能够考虑编译库,这甚至不一定是必要步骤。但是从IDE编译的过程来说,如果没有.a文件存在,那么理论上是无法编译的。而且debug方式的编译库和release方式的编译库也往往不能混用(配置opencv时也是一样)。
解决的过程中参考了如下网站:
我按上面的方法进行了配置,但没有成功,是因为没有
将qwt_designer_plugin.dll和libqwt_designer_plugin.a拷贝到 …\Qt\Qt5.5.0\5.5\msvc2013_64\plugins\designer目录下
解释了在Linex系统下QWT和QT的debug链接库和release链接库直接的关系。
有帮助,但qwt版本过久,目前的qwt不会出现debug和release库名不加区分的情况;
我按照以上方法加入了静态库。
配置QWT之后想要通过编译的办法
标签:
原文地址:http://blog.csdn.net/gua_mass/article/details/51338816