最近需要重新编译一个DLL动态链接库,由于源码中包含了QT代码,所以现在需要配置VS+QT环境。

本人系统环境:Win10 64位

一、安装

Visual Studio 2017软件下载安装教程:https://mp.weixin.qq.com/s/oOAxsbAEBigxvp356yINQQ

QT5.12下载路径:http://download.qt.io/archive/qt/

注意:QT5.12里面的mingw是64位的,不再是32位的了。为了使VS也可以加载QT,在安装QT时除了安装MinGW 64bit,还需要安装 MSVC 64bit。

具体安装方法可以参考这位博主的教程,蛮详细的:https://blog.csdn.net/gaojixu/article/details/82185694

二、一些补充说明

1.如果只是在MSVC版的QT里面进行开发,就需要在Qt Creater进行一些额外设置,如下:

选择Qt Creater中的工具->选项,在选中 Kits 中的 构建套件(Kit) 选项,将 调试器 的安装路径配置好,如下图所示:(这是我已经配置好的)

一般来说,只要安装完VS2017,在Qt的构建套件选项里,相关的编译器、调试器就会自动识别。

如果调试器没有(就是cdb.exe这个文件没有),可能是在安装VS2017时没有勾选win10 SDK啥的,这里可以去官网下载,参考地址:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools

进入网址,点击如下位置:

再点击下载安装程序 ,然后下载安装即可

2.如果要在VS里面进行QT开发,需要注意下面一些问题:

(1)在用VS关联QT生成一个动态链接库后,在python里面导入会出现如下报错—— OSError: [WinError 127]找不到指定的程序:

或者命令行运行,报如下错误——:无法定位程序输入点***于动态链接库***上

原因:每个人的原因不同,但是绝对是因为生成的DLL有问题,导致python无法加载dll。

我这里之所以出现这种报错是因为我自己把QT的系统变量路径搞错了,导致生成的Dll有问题。因为我系统里面装了mingw版QT和msvc版QT,默认设置了mingw版QT的路径在前,所以出现了这个问题。有问题的QT路径顺序设置如下:

正常msvc的路径应该放在mingw之前,这样才能保证系统第一时间可以找到匹配的msvc下的QT,如下所示:

(2)使用VS关联QT生成动态链接库的操作过程如下:

打开VS2017,标题栏会出现 Qt VS Tools,然后选择 文件 - 新建 - 项目 ,在Visual C++栏会出现测试选项,接着选择 Qt Class Library选项

点击 Next,然后选择需要用到的QT模块

接着点击 Next,进入如下界面,注意为了生成dll,这里千万不能勾选 .lib 选项,否则只会生成静态链接库

点击 Finish ,项目创建完成

(3)不关联QT,直接使用VS生成动态链接库的操作过程可以参考:

https://blog.csdn.net/lunar_queen/article/details/82872157

https://blog.csdn.net/weixin_38285131/article/details/81288338#commentsedit

VS2017+QT5.12环境配置与动态链接库的生成的更多相关文章

  1. VS2017 + Qt5 + OpenCV400 环境配置

    首先为VS2017 IDE点赞. 配置核心 配置 Qt5 和 OpenCV400,最主要的就是头文件路径.库路径以及库文件名字. 配置方法和步骤 新建一个工程,或者打开一个已有的工程: 选择 View ...

  2. VS2017+QT5.12.10+QGIS3.16环境搭建及开发全流程

    题记:大力发展生产力,助力高效采集.(转载请注明出处https://www.cnblogs.com/1024bytes/p/15477374.html) 本篇随笔分为五个部分: 一.获取QGIS3.1 ...

  3. 【全网首发】使用vs2017+qt5.12.4编译64位debug和release的qgis3.4.9

    一.摘要: 搜索网络没有发现一篇文章完整的介绍如何编译qgis3.4.x的debug版本,官方的指导也长时间不再更新. 所以前前后后花了4天搞定qgis的debug编译,并成功运行,废话不多说,直接上 ...

  4. mysql_8.0.12环境配置

    1. 官网下载mysql_8.0.12免安装包,解压到你存放的地方: 2. 配置环境变量(把bin的文件夹弄进系统path里面): 3. 在解压的根路径中,查看是否含有my.ini文件,没有就新建一个 ...

  5. 将GMap封装为Activex供QT使用(工具:VS2017,QT5.12) 更新部署到其它电脑

    由于一开始定的开发平台在QT下,到后面要加入地图控件.qt里本身带有地图qmap(在qt的官方案例中可以找到,用qml做的),但只有固定的几个地图源,要做google或者bing地图,时间和人力不允许 ...

  6. VS2017 + EF + MySQL 环境配置

    我使用过程中遇到的坑(血泪啊) 安装环境VS2017MVC+WIN10+EF6+MySQL8.0.12 1.安装MySQL connector一定要6.10.8,8.0以上全是坑,会闪退!!! 2.安 ...

  7. vs2017初学c++环境配置及使用教程

    https://blog.csdn.net/jmpan_sjtu/article/details/79053169 https://blog.csdn.net/luoyu510183/article/ ...

  8. Ubuntu开发环境配置

    主要是: 源的更新 安装vim编辑器 远程登录xrdp相关配置 synergy symless键鼠共享配置 对新买的硬盘进行格式化和分区 vsftp环境搭建 gcc开发环境配置 qt5开发环境配置 m ...

  9. ASP.NET和ASP.NETCore多环境配置对比

    前言 多环境配置应该都很熟悉了,最为常见的便是Debug和Release,例如下图是新建的一个asp.net项目,配置文件展开共有三个文件组成 据我所知,大多公司从来没编辑过Web.Debug.con ...

随机推荐

  1. 【转载】带你吃透RTMP

    RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing) ...

  2. CentOS下安装Lua

    Lua是一种轻量小巧的脚本语言,用标准  C语言编写并以源代码形式开放,其设计目的是 为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.官网: http://www.lua.org/ 安装过 ...

  3. NX二次开发-UFUN获取环境变量路径,将环境变量转换为字符串,字符串拼接UF_translate_variable

    NX9+VS2012 #include <uf.h> UF_initialize(); //UFUN获取环境变量路径 //将环境变量转换为字符串 char* GetName = NULL; ...

  4. NX二次开发-UFUN输入表达式TAG,得到表达式值UF_MODL_ask_exp_tag_value

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建表达式 tag_t NewExpTag ...

  5. flutter 显示base64 图片

    后台返回base64 为了本地显示需要转换成Uint8List 1.导入包 import 'dart:convert';2.后台返回base64 格式不被识别需要切分 //'"data:im ...

  6. [转]关于tomcat 中的 tomcat-users.xml 配置不生效原因

    安装完tomcat,或者解压完tomcat后,在tomcat的目录下有个conf文件夹,在这个文件夹下面有一个tomcat- users.xml的文件,这个文件里面的配置信息是当我们进入http:// ...

  7. 剑指offer——16二进制中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 有可能引起死循环解法: 每次判断最右端是不是1[与 & 1即可],是就cnt++,然后右移一位,直到num为0,结束 ...

  8. python中字典排序

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  9. python调用tushare获取沪股通、深股通成份股数据

    接口:hs_const 描述:获取沪股通.深股通成分数据 注:tushare库下载和初始化教程,请查阅我之前的文章 输入参数 名称      |      类型      |      必选      ...

  10. Jmeter-----请求依赖之JsonExtractor

    层级关系填写: 1.第一个必须是$ 2.用英文状态下的  . 来代表下一个层级