我目前正在尝试弄清楚两个不同的本机 Visual-C++ 项目(具有完全相同的编译器设置)是否可以共享它们的中间文件(obj、pch、...)
一个例子应该有帮助:
这是一个正常的设置:
PROJECTS \ P1 \ p1.vcproj; p1.cpp; ...
\ Release_Intermediate_Dir \ p1.obj
\ tool1.obj
\ P2 \ p2.vcproj; p2.cpp; ...
\ Release_Intermediate_Dir \ p2.obj
\ tool1.obj
\ COMMON \ tool1.cpp; ...
这个设置怎么样:
PROJECTS \ P1 \ p1.vcproj (uses: p1.cpp; p1_main.cpp)
\ p1_test.vcproj (uses: p1.cpp; p1_test.cpp)
\ Release_Intermediate_Dir \ p1.obj (used by both projects p1 and test)
\ tool1.obj
\ p1_main.obj (only p1.vcproj)
\ p1_test.obj (only p1_test.vcproj
\ COMMON \ tool1.cpp; ...
我可以为两个 C++ 项目使用相同的中间文件夹,从而obj
直接共享文件吗?
还是我总是需要一个额外的静态库项目?(据我了解,静态库只是文件的容器。obj
)
我为什么要这样做?查看这篇博文:在 Visual Studio 中为 Native C++ 编写单元测试。
它使用静态库的唯一目的是拥有两个不同的可执行文件(主要功能,如果你愿意的话)。(忘记托管/CLI 的东西。)这意味着你的解决方案中有 3 个项目(必须维护三个项目),当你真的只想要两个项目共享相同的代码和相同的编译设置但使用不同的 main/startup索具。