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