0
点赞
收藏
分享

微信扫一扫

一个在vs2022上的链接问题

流沙雨帘 2022-11-13 阅读 85

问题描述:

有一个动态库imageFactory,之前该库依赖了另外两个动态库imageBasic和algorithmFactory,

后来我将imageBasic中的函数全部整理到了algorithmFactory中,从而动态库imageFactory只依赖了algorithmFactory,

并且我也在imageFactory的代码以及属性页面中进行了合理的库依赖调整;

在x64环境中,imageFactory可以顺利编译并链接,但在win32中,imageFactory编译时提示error LNK1181,无法找到imageBasic.lib。

 

问题解决:

1 反复检查imageFactory项目链接依赖设置,没有发现关于imageBasic.lib的链接;

2 查看imageFactory.vcxproj文件,发现如下设置:

   </ProjectReference>

  <ProjectReference Include="..\imageBasic\imageBasic.vcxproj">
  <Project>{e856f5a3-c243-45cc-953d-46655f40e8b0}</Project>
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
   </ProjectReference>

   以上设置是合并库前产生的,具体含义没有详细理解,我猜测imageFactory项目是否继承了imageBasic项目中的某些依赖(虽然imageBasic不应该依赖自己),

   于是我将imageFactory项目同目录下的历史项目文件夹imageBasic重命名为imageBasic_,再次编译imageFactory可正确连接!

     

一个在vs2022上的链接问题_3d

  3 我发现在x64中,mageFactory.vcxproj文件也有如下设置:

      </ProjectReference>

      <ProjectReference Include="..\imageBasic\imageBasic.vcxproj">

      <Project>{e856f5a3-c243-45cc-953d-46655f40e8b0}</Project>
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
       </ProjectReference>

    且存在历史遗留文件夹imageBasic, 但不存在链接问题!

 



举报

相关推荐

0 条评论