最近需要重新編譯一個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