我正在使用 Visual Studio 2010 在 C 中开发 Windows 代码。
我正在处理几个相关的项目:一个静态库、一个 DLL 和一个可执行文件。DLL 应该有链接的静态库,并且可执行文件依赖于 DLL。(我使用的是“隐式”DLL 链接;我不需要控制 DLL 加载和卸载。)
现在我有三个独立的 VS2010 项目,但我知道可以将其设置为“子项目”:静态库应该是 DLL 的子项目,DLL 应该是 EXE 的子项目。
我想解决以下问题:
当我重建 EXE 时,如果需要,它应该重建 DLL,如果需要,DLL 构建应该重建静态库。我只想打开 EXE,按一下
F7
键,然后一切都建立起来。当我将 EXE 重建为 Debug 时,它应该与
.lib
DLL 中的 Debug 文件链接;同样,当我将 EXE 重建为 Release 时,它应该与.lib
DLL 中的 Release 文件链接。如果我正确设置子项目,这会自动工作吗?
编辑:我取得了进展。首先,在DLL项目中,我使用File / Add
了然后选择Add Existing Project
添加静态库。(据我所知,这仅在File
菜单上可用!绝对不在右键菜单中。)其次,我单击左侧“解决方案资源管理器”侧栏中的DLL项目,然后右键单击并选择Project Dependencies...
并设置DLL项目依赖于首先构建的静态库项目。然后Visual Studio好像神奇的为我设置了链接依赖,当我F7
在DLL项目中敲键时,它会构建静态库项目。
我尝试对 EXE 项目重复上述步骤。现在它将构建 DLL,但它还没有正确链接;链接器抱怨从 DLL 导出的函数不可用。