天津中小企业网站制作,东营网站开发招聘,网站文章收录查询,企业网站建设的推广方式MinGW/MSVC的关系 MinGW / MSVC.dll / .lib / .a 的关系 MinGW / MSVC
Qt 中有两种方式编译#xff1a;一种是MinGW #xff0c;另一种MSVC#xff0c;是两种不同的编译器。
MinGW(Minimalist GNUfor Windows)#xff0c;它是一个可自由使用和自由发布的Windows特定头文件… MinGW/MSVC的关系 MinGW / MSVC.dll / .lib / .a 的关系 MinGW / MSVC
Qt 中有两种方式编译一种是MinGW 另一种MSVC是两种不同的编译器。
MinGW(Minimalist GNUfor Windows)它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合允许你在Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MSVC是第三方C运行时库由微软开发的VC运行时库被Visual Studio IDE所集成。所以我们使用VS时会附带MSVC编译器。它们都是很好用的编译工具但是它们兼容的并不好。当你的项目使用MinGW编译的使用想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时最好用Qt MSVC组合这样可以使用大量的第三方lib还有很多的构建指令。我认为在任何平台下越贴近原生的东西总能得到更多的优化MinGW始终不是Windows亲生的bug比亲生的VS多很正常。
.dll / .lib / .a 的关系
在调用第三方库时总会遇到这几个格式的文件总结一下
.lib用于MSVC编译器中 MSVC 微软自己的编译器.dll / .a用于MinGW编译器中MinGW gcc/gMinGW则是指Minimalist GNU for Windows的缩写dll真正存放函数体的地方所有代码内容都在dll里面.lib里面只有符号信息。
在使用Qt MinGW编译器是需要用到.a文件以及include文件夹以OpenCV动态库为例需要在.pro项目文件中添加以下代码
INCLUDEPATH D:\Git\OpenCV-MinGW-Build-OpenCV-4.0.1-x64\include
LIBS D:\Git\OpenCV-MinGW-Build-OpenCV-4.0.1-x64\x64\mingw\lib\lib*.a在使用Qt MSVC编译器时需要用到.lib文件以及include文件夹以OpenCV动态库为例需要在.pro项目文件中添加一下代码
win32:CONFIG(release, debug|release): LIBS -LD:/OpenCV/opencv/build/x64/vc15/lib/ -lopencv_world410
else:win32:CONFIG(debug, debug|release): LIBS -LD:/OpenCV/opencv/build/x64/vc15/lib/ -lopencv_world410d或者通过图形界面直接添加库