首页 > 解决方案 > 使用 CMake(Visual Studio 2015)构建的可执行文件需要 Qt5SVG.dll,但原始 Visual Studio 2015 不需要。为什么?

问题描述

情况

去年我学到了很多东西,但这是我无法理解的。项目是C++. 制作1.15.2。视觉工作室2015

我使用cmake-converter转换了整个解决方案*.sln文件,并为文件中定义的所有外部 s编写了 FindXXX.cmake 模块。*.lib*.vcxproj

每次我遇到一个我都会在调用中error: unresolved external添加相应的目标。Sometarget::somecomponenttarget_link_libraries(ConsumingTarget ... )

现在我有一个可以工作并且不会产生错误的构建。一些可执行文件会说以下内容:

“无法继续执行代码,因为找不到 somecomponent.dll……”

我有

我试过的

我尝试定义一个 OBJECT 库并将其添加到调用的源中ConsumingTargetSometarget::somecomponenttarget_link_libraries调用中删除。对象库上的 CMake Doc

我尝试阅读和理解module 和 library之间的区别。即使是有关导入库的 CMake 文档也无法帮助我理解我的问题。

我尝试阅读并理解链接静态库和共享库之间的区别。

我的假设

我期待/希望

失败的可能原因

编辑:1:添加了失败的可能原因

标签: c++visual-studiocmakeexternal-dependenciescmake-modules

解决方案


推荐阅读