我有一个用Visual Studio 2008编写的项目,该项目生成以下链接器命令行:
/OUT:"../Debug IH East\CommonDlgs.dll"
/INCREMENTAL:NO
/NOLOGO
/LIBPATH:"../Debug IH East/Lib"
/DLL
/MANIFEST
/MANIFESTFILE:"Debug IH East\CommonDlgs.dll.intermediate.manifest"
/MANIFESTUAC:"level='asInvoker' uiAccess='false'"
/DEBUG
/PDB:"c:\Users\rdrichardson\OneDrive - Rad-Con\CAPS Builds\trunk\Debug IH East\/CommonDlgs.pdb"
/SUBSYSTEM:WINDOWS
/DYNAMICBASE:NO
/IMPLIB:"c:\Users\rdrichardson\OneDrive - Rad-Con\CAPS Builds\trunk\Debug IH East\/Lib/CommonDlgs.lib"
/MACHINE:X86
/ERRORREPORT:PROMPT
CapsLib.lib CJ60Lib.lib "..\debug ih east\lib\capsdata.lib"
我只列出CapsLib.lib和CJ60Lib.lib作为依赖项。我可以在项目配置中的任何地方未列出CapsData.lib。由于CapsData依赖于CommonDlgs项目,因此在此项目中具有循环依赖关系。我已将$(OutDir)/ Lib列为其他库目录,并且$(OutDir)解析为.. \ debug ih east \ lib。 CapsData来自哪里,如何摆脱它?
问题似乎出在解决方案文件上。我注意到一个不同的配置还在Debug IH East文件夹中列出了一个文件作为链接器输入,并且在创建其他配置时不存在Debug IH East文件夹。两种配置的唯一共同点是它们是同一解决方案的一部分。我看了看项目的依赖关系。我发现该解决方案指定CommonDlgs项目依赖于CapsData项目和CapsLib项目,而不依赖于CJ60Lib项目。我删除了CapsData依赖项并添加了CJ60Lib依赖项,问题消失了。