场景1
解决方案SolA
仅包含1个名为PrjA
的项目。PrjA
是Win32控制台应用程序,编译结果为PrjA.exe
。
如何将PrjA
中的源代码文件拆分为PrjA1
和PrjB
,以便更易于管理源代码,而编译结果PrjA1.exe
与PrjA.exe
几乎相同?
例如,我有PrjA
:-PrjA
具有300个.cpp
文件。PrjA.exe
大小400KB。
我希望将PrjA
分为2个项目:-PrjA1
具有200个.cpp
文件PrjB
具有100个.cpp
文件。PrjA1.exe
也是大约400KB。
我不确定如何设置PrjB
或它的编译结果是什么。
假定PrjB
编译为PrjB.DLL
,大小为100KB,我希望PrjA1.exe
将以某种方式将PrjB.dll
嵌入其内部。因此,大小为400KB。
我不需要300KB PrjA1.exe
,它将在运行时动态链接到100KB PrjB.dll
。
问题:如何设置PrjB
,以及如何设置PrjA1
和PrjB
之间的链接?
方案2
与方案1相同,只是这一轮PrjA
的编译结果是一个Windows DLL,名为PrjA.dll
,如何将PrjA
分为PrjA1
和PrjB
?
开发环境为Windows 7 64位下的Visual Studio 2013,但编译结果为32位。
最佳答案
这是将现有代码移入静态库的方式。我使用VS2015,它应该与VS2013相同,但我无法检查。我从以下解决方案结构开始:
首先要做的是将新项目添加到解决方案中。File -> Add -> New project -> Win32 Project
检查静态库并取消选择预编译头
然后在两个项目的解决方案资源管理器中单击“显示所有文件”图标。这将关闭过滤器并按原样显示项目文件夹。它看起来应该像这样:
将所有需要的文件从一个项目拖放到另一个项目:
现在参考您的图书馆。取消选中显示所有文件图标以显示引用。 Right click -> Add reference
并检查您的静态库项目:
最后要做的是将包含目录添加到使用该库的项目中。这是在项目属性中完成的。确保检查所有配置和所有平台:
而已。现在,当您构建解决方案时,VS会构建静态库,构建主项目并将它们链接在一起。结果应该与所有项目都在同一项目中一样。
关于c++ - 如何在Visual Studio中将C++项目一分为二?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39334843/