2011-08-27 140 views
1

我有两个项目,它们有一些共同的头文件,所以它们都包含这些头文件。现在我的问题是:我可以在外部cpp文件中实现这些标头。例如,当头文件在项目中时,您只需声明函数并在.cpp文件中实现它们,并且因为.cpp文件在项目中,编译器将知道在哪里获得这些函数的实现。外部头文件包含在C++中

那么我该怎么做外部标题?包括.h和.cpp?实现.h内的所有功能?

谢谢。

回答

0

这取决于你想要完成什么。我有效的解决方案是创建一个“头只”文件,其中的实现在声明中。 boost库的很大一部分是这样做的。

另一种选择是将您的通用代码放在另一个项目中并链接到它。

3

通常,您将为在cpp文件中找到的定义创建一个动态或静态库 - 这些是您共享标题中声明的导出定义。

然后你会将你的应用程序/可执行文件链接到该库。

链接过程中,链接器将在您所创建的静态/动态库中找到应用程序引用的符号。如果您已正确实施并配置所有内容,则不会出现链接器错误。