【问题标题】:External headers include in C++外部头文件包含在 C++ 中
【发布时间】:2011-08-27 06:01:39
【问题描述】:

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

那么我该如何为外部标题做同样的事情呢?包括 .h 和 .cpp??实现 .h?? 中的所有功能?

谢谢。

【问题讨论】:

    标签: c++ header include


    【解决方案1】:

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

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

    在链接期间,链接器将在您创建的静态/动态库中定位应用程序引用的符号。如果您正确实施和配置了所有内容,则不会出现链接器错误。

    【讨论】:

      【解决方案2】:

      这取决于您要完成的工作。我有效的解决方案是创建一个“仅标题”文件,其中实现在声明中。大部分的 boost 库都是这样做的。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-04
        相关资源
        最近更新 更多