包括头文件在一个单独的文件夹中

时间:2011-02-18 17:55:14

标签: c++ makefile qmake nmake

我创建了一个类(比如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文件)。我错过了什么吗?

非常感谢!

大辅

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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