[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(一)+https://developer.aliyun.com/article/1394490
- C++ — 预处理器 — 预处理器定义:配置同上函数库“VisionLibrary”。
- 链接器—常规—输出文件:
$(OutDir)$(ProjectName)D.dll
链接器—常规—附加库目录:相比配置函数库“VisionLibrary”而言,增加了对函数库的库目录配置(最后一项)$(QTDIR)\lib
$(HALCONROOT)\lib\x64-win64
$(SolutionDir)Export\vision\lib - 链接器—常规—输入:相比配置函数库“VisionLibrary”而言,增加了对函数库的.lib配置(最后一项)
qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Sqld.lib
Qt5Widgetsd.lib
halconcpp.lib
VisionLibraryD.lib - 生成事件—后期生成事件:和配置“VisionLibrary”库一样,只是文件夹名称不一样,最后输出:
命令行输入如下:
rd /S /Q "$(SolutionDir)Export\visionUi\include" md "$(SolutionDir)Export\visionUi\include" rd /S /Q "$(SolutionDir)Export\visionUi\lib" md "$(SolutionDir)Export\visionUi\lib" rd /S /Q "$(SolutionDir)Export\visionUi\bin" md "$(SolutionDir)Export\visionUi\bin" xcopy /Y /S "$(ProjectDir)include\*" "$(SolutionDir)Export\visionUi\include\" xcopy /Y /S "$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)D.lib" "$(SolutionDir)Export\visionUi\lib\" xcopy /Y /S "$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)D.dll" "$(SolutionDir)Export\visionUi\bin\"
🚓上位机测试项目“VisionTestFrame”的添加与配置
- 项目的添加:右键解决方案——添加新项目——VisionTestFrame(项目名)——VisionTestFrame(类名)——QMainWindow(基类)
- 常规配置如下:
- 项目调试—环境配置同上函数库“VisionLibrary”。
- 项目C++ — 常规 — 附加包含目录相比配置函数库“VisionLibrary”而言,增加了对函数库的包含路径(后两项)。
.\GeneratedFiles$(ConfigurationName)
.\GeneratedFiles
.
$(QTDIR)\include
$(QTDIR)\include\QtCore
$(QTDIR)\include\QtGui
$(QTDIR)\include\QtANGLE
$(QTDIR)\include\QtWidgets
$(HALCONROOT)\include\halconcpp
$(HALCONROOT)\include
$(SolutionDir)VisionLibrary
$(SolutionDir)VIsionUILibrary
$(SolutionDir)Export\vision\include
$(SolutionDir)Export\visionUi\include - C++ — 预处理器 — 预处理器定义:
QT_QML_DEBUG
QT_CORE_LIB
QT_GUI_LIB
QT_WIDGETS_LIB
UNICODE
_UNICODE
WIN32
_ENABLE_EXTENDED_ALIGNED_STORAGE
WIN64 - 链接器—常规—附加库目录
$(QTDIR)\lib
$(HALCONROOT)\lib\x64-win64
$(SolutionDir)Export\vision\lib
$(SolutionDir)Export\visionUi\lib - 链接器—输入—附加依赖项
qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib
halconcpp.lib
VisionLibraryD.lib
VisionUILibraryD.lib
🚒总结
至此,Debug平台下函数库、界面库和测试项的添加与配置已经完成,三者的依赖关系和生成顺序如下:
将测试项“VisionTestFrame”设为启动项目
🚛配置中遇到的问题
- 配置结束后,编译界面库VisionUILibrary是出现VisionLibrary.cpp(4): warning C4273: “VisionLibrary::VisionLibrary”: dll 链接不一致的问题
解决:因为我复制的别的项目导出库头文件是这样的
而我的项目导出库头文件是下面这样的
所以需要在界面库VisionUILibrary项目中C++ — 预处理器 — 预处理器定义将VISIONLIBRARY_EXPORTS
更改为VISIONUILIBRARY_LIB
,前面已经更改,大家按照前面的配置是对的,只是我自己刚开始不太理解预处理器定义,完全照搬的别的项目,导致出现问题。
🚑Release平台配置与Debug平台配置的一些差别
以VisionLibrary函数库的配置为例,界面库和上位机项目配置大同小异
- 常规
- 预处理器定义
- 链接器—常规
- 命令行
戳戳小手帮忙点个免费的赞和关注吧,嘿嘿。 |