win7 64位+qwt 6.1.2 64位+qt 5.8.0 msvc2015 x64安装方法 + msvc交叉编译:使用vcvarsall.bat设置命令行编译环境

win7 64位+qwt 6.1.2 64位+qt 5.8.0 msvc2015 x64安装方法
话说想在qt5.6.0上用qwt画个图确实比较费劲,中间参考了很多资料才完成了显示的功能,记录在这里。

准备工作:msvc2015 community版本,qt正常安装。

过程:

将下载好的qwt6.1.2(64位)解压,路径中不能包含有中文或者是空格(网上其他教程都是这么说的,我也就没有包含中文以及空格)。
在开始菜单中找到qt5.6 64bit for windows desktop(MSVC 2015),运行之。
注意在命令行弹出来的第一句话就写着要运行vcvarsall.bat添加系统变量,这一步是一定要有的,作用相当于完成环境变量设置。然后重启电脑。
用cd跳转到qwt6.1.2解压后的路径,使用命令qmake生成Makefile文件。
在开始菜单中,找到visual studio2015文件夹下面的vs2015 x64本机工具命令提示符,使用cd命令跳转到qwt6.1.2的解压路径,也就是运行qmake那个路径。然后使用命令nmake进行编译,此过程大约要等待10分钟。
编译完成之后,在designer\plugin\designer路径下,有qwt_designer_plugin.dll文件,把这个文件移动到
如果放在了…\Qt5.6.0\5.6\msvc2015_64\plugins\designer下面,在打开ui文件时,需要使用Qt Designer打开(在项目文件列表中,选择界面文件,右键->用…打开->Qt Designer)。在Qt Designer左侧所有控件中,一直往下拉,就能看见QwtWidgets这一组控件。注意,如果放在了这个路径下面,直接双击界面文件,打开的文件中并不能看到有Qwt Widgets这一组控件。
如果放在了…\Qt5.6.0\Tools\QtCreator\bin\plugins\designer这个路径下面,则在打开ui文件时,并不需要使用Qt Designer打开。直接双击ui文件打开就行。工具->Form Editor->About Qt Designer Plugins里面可以看到Qt已经发现了放进去的dll,已经生效,同时,在左侧的框里面也能看到QwtWidgets。
这就完成了怎么才能在Qt中看到Qwt插件的全部过程!
注意事项:

这里下载的64位的qwt6.1.2一定要用msvc2015 的64位编译器进行编译。如果用32位的msvc2015编译器进行编译,会提示用到的OpenCV库是64位的,模块计算机x64和目标计算机x86不兼容的提示,编译不成功。想想也是,64位的代码怎么可能用32位的编译器编译成功= =

在 工具->Form Editor->About Qt Designer Plugins会出现“不是有效的win32程序”这么一个提示,这个dll也加载不正确,显示failed plugins。这时候需要注意,编译qwt的时候,一定要和编译qt的编译器和处理器类型相同。
例如,我使用的是msvc2013,32bit编译形成的qt,那我的qwt6.1.2也应该是用msvc2013,32bit编译。所以,qwt6.1.2也应该下载32bit的,就看怎么用了。
这一点想法来自于QWT plugin not showing up in creator windows. qwt-6.1.3 我自己还没有尝试过这样,日后可以尝试一下。

msvc交叉编译:使用vcvarsall.bat设置命令行编译环境

一直以来我只知道vc设置命令行编译环境的批处理命令是%VS140COMNTOOLS%/Common7/Tools下的vsvars32.bat,(%VS140COMNTOOLS%为定义vs2015公共工具程序位置的环境变量,命令行窗口输入set就能找到,vs2010的对应定义为%VS100COMNTOOLS%)
微软的官网上有这个命令的说明:
https://technet.microsoft.com/zh-cn/library/1700bbwd.aspx

但在执行这个命令生成的命令行环境下用nmake只能编译32位版本的代码,我一直都不知道如何用nmake编译64位的代码。
今天才搞明白vsvars32.bat已经过时了,正确的打开方式是vcvarsall.bat 。
至少从vs2010开始,
%VS140COMNTOOLS%/VC下就有vcvarsall.bat,用于生成命令行编译环境。
如果要在命令行生成 32位代码,就执行vcvarsall x86
如果要在32位系统下生成64位代码,就执行vcvarsall x86_amd64
如果要在64位系统下生成32位代码,就执行vcvarsall x86或vcvarsall amd64_x86
到了VS2015,已经支持arm平台了,所以如果要生成arm平台的代码,就执行vcvarsall x86_arm 如果你的操作系统是64位的也可以 vcvarsall amd64_arm

前面一个名字代表你的当前电脑的体系结构,后面的这个名字代表你要生成的代码的体系结构。如果两个名字一样,就简化为一个名字。
搞清楚了这个,今天终于顺利在命令行下实现nmake编译32位和64位版本代码:

生成用于编译32位代码的命令行编译环境

C:\Program Files (x86)\Microsoft Visual Studio 14.0>cd VC
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>vcvarsall x86

执行cmake生成NMake格式的Makefile,指定处理器为x86,然后执行nmake编译所有代码,并安装

cmake -G “NMake Makefiles” -DCMAKE_BUILD_TYPE=RELEASE -DTARGET_PROCESSOR=x86 …\facecl
nmake install

安装成功的输出

Install the project…
– Install configuration: “RELEASE”
– Installing: C:/Program Files (x86)/facecl/lib/static/detect_cl.lib
– Installing: C:/Program Files (x86)/facecl/bin/detect_cl.dll
– Installing: C:/Program Files (x86)/facecl/lib/static/img_tool.lib
– Installing: C:/Program Files (x86)/facecl/bin/img_tool.dll
– Installing: C:/Program Files (x86)/facecl/bin/test_detect.exe
– Up-to-date: C:/Program Files (x86)/facecl/./README_utf8.txt
– Up-to-date: C:/Program Files (x86)/facecl/include/detect_cl_types.h
– Up-to-date: C:/Program Files (x86)/facecl/include/detect_cl.h
– Up-to-date: C:/Program Files (x86)/facecl/include/img_tool.h
– Up-to-date: C:/Program Files (x86)/facecl/sample/test_detect.cpp
– Up-to-date: C:/Program Files (x86)/facecl/sample/utility.h
– Up-to-date: C:/Program Files (x86)/facecl/sample/raii.h
– Up-to-date: C:/Program Files (x86)/facecl/sample/assert_macros.h
– Up-to-date: C:/Program Files (x86)/facecl/sample/cmdline.h
– Up-to-date: C:/Program Files (x86)/facecl/sample/dirent.h
– Up-to-date: C:/Program Files (x86)/facecl/sample/file_utilits.h
– Up-to-date: C:/Program Files (x86)/facecl/sample/time_utilits.h

如果要在32位系统下生成64位代码,也如法炮制

关于vcvarsall.bat更详细的说明,参见微软的官方文档:
https://msdn.microsoft.com/zh-cn/library/f2ccy3wt.aspx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值