我们有一个由cmake生成的项目的解决方案。
有src
文件夹,其中包含所有源代码。 Proj_Service1
,Proj_Service2
和Proj_Service3
引用相同的Main.cpp
和Base_Service.cpp
文件。此外,每个项目都引用了自己的ServiceX.cpp
文件。所有项目都是控制台项目(exe)。请参阅下面的解决方案结构:
-Solution
----Proj_Service1
-------Main.cpp
-------Base_Service.cpp
-------Service1.cpp
----Proj_Service2
-------Main.cpp
-------Base_Service.cpp
-------Service2.cpp
----Proj_Service3
-------Main.cpp
-------Base_Service.cpp
-------Service3.cpp
之所以采用上述结构,是因为公司决定每个项目应仅包含与该项目相关的文件。
我想添加Test_Proj
项目,该项目将使用googletest测试一项服务或/和所有服务。
当我尝试在ServiceX.cpp
中实例化Test_Proj
时,由于Proj_ServiceX
不是lib
,因此显然会出现链接器错误,因此我无法链接到它。
我想做的是创建一个其他类型为“ lib”的项目,将Service1.cpp
,Service2.cpp
和Service3.cpp
文件移到其中,并使所有项目都引用它。基本上:
-Solution
----Service_Proj
-------Base_Service.cpp
-------Service1.cpp
-------Service2.cpp
-------Service3.cpp
----Proj_Service1
-------[Reference to Service_Proj]
----Proj_Service2
-------[Reference to Service_Proj]
----Proj_Service3
-------[Reference to Service_Proj]
----Test_Proj
-------[Reference to Service_Proj]
问题: