我曾经有一个静态库,它是由我的主程序和我的测试导入的。但是,我需要在我的静态库中构建全局变量,并且无法强制Visual Studio执行此操作。有没有一种简单的方法来建立与Visual Studio 2010的构建系统的链接缝?
我想要做的事情就是编写一个项目,它编译所有常见的C++文件,编译和链接单元测试的项目(使用常见的C++文件)以及链接实际应用程序的项目。
如何在Visual Studio 2010中执行此操作?
编辑:由于澄清一直问,这里是我的意思是:
InterfaceIUse.hpp
#include <memory>
struct IInterface
{
virtual ~IInterface() {}
virtual void SomethingIDependOn() = 0;
};
std::auto_ptr<IInterface> FactoryMethod();
CodeUnderTest.cpp
#include "InterfaceIUse.hpp"
void FunctionUnderTest()
{
//Blah blah blah
}
IExistOnlyInTheMainProgram.cpp
#include "InterfaceIUse.hpp"
std::auto_ptr<IInterface> FactoryMethod()
{
//I return the real implementation of the interface.
}
IExistOnlyInTheTest.cpp
#include "InterfaceIUse.hpp"
std::auto_ptr<IInterface> FactoryMethod()
{
//I return the mock implementation of the interface.
}
的想法是编译给定的工厂,这将使代码的依赖关系的正确的.cpp实施进行测试,以被注入的依赖。
做这种环缝的是容易的makefile - 不过的makefile不可取的,因为我被迫手动维护在生成文件头的依赖关系。
文件 - >新建项目...右键单击 - >添加现有项目。 –
你尝试创建一个生成文件的项目,并提供命令建立,链接,不管?你几乎可以用它做任何疯狂的事情。 –
不知道我是否看到这个问题。在多个项目引用相同的源代码文件是不是远远超出他们留在同步的麻烦的问题。如果.obj文件彼此跺脚,则可能必须更改“对象文件名”设置。我会专注于初始化问题,你不应该有一个。一个小小的静态C++类实例变量可以创造奇迹。 –