【问题标题】:including header file in a separate folder在单独的文件夹中包含头文件
【发布时间】:2011-06-30 00:14:07
【问题描述】:

我创建了一个类(例如 myclass.h/cpp)。我想在许多不同的地方使用该课程。因此,我将这些文件放在一个文件夹中(例如,C:\cpp_include),并且我想将它们从我的代码所在的任何文件夹中包含进来。我有一个使用该类的代码(例如,main.cpp)。在 main.cpp 中,我包含了 myclass:

#include "myclass.h"

我使用 .pro 文件和 nmake 进行编译。在 .pro 文件中,我将文件夹指定为:

INCLUDEPATH += C:\cpp_include

当我使用 nmake 编译代码时,myclass.h 已正确包含,但编译器似乎找不到 myclass.cpp。 当我将 myclass.cpp 指定为 .pro 文件中的源文件之一时:

SOURCES += main.cpp C:\cpp_include\myclass.cpp

exe 文件已正确构建。但是,我希望在包含 myclass.h 时自动找到 myclass.cpp 文件,即不将 myclass.cpp 设置为源文件。这可能吗?看起来这就是 Qt 和 Qwt 中的类所发生的情况(例如 Qt 和 Qwt 中 /src/ 文件夹中的 .h/cpp 文件)。我错过了什么吗?

非常感谢!

大辅

【问题讨论】:

    标签: c++ makefile qmake nmake


    【解决方案1】:

    这不是它的工作原理。 .cpp 是重要的 文件,头文件 (.h) 只是被复制到其他 .cpp 文件中。因此,您需要将 myclass.cpp 添加到您的源代码中进行编译。或者,如果它是一个库类,您也可以将它编译成一个静态库 (.lib),然后将其添加到您的链接器文件中。但是您最终需要以某种方式将您的实现包含在使用它的项目中。

    【讨论】:

      【解决方案2】:

      一个简单的技术是在cpp 目录中创建脚本(makefile)。编写一个遍历目录的规则,执行构建脚本。这是隔离功能的一步,也允许使用库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-17
        相关资源
        最近更新 更多