1

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

非常感谢!

大辅

4

2 回答 2

0

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

于 2011-02-18T18:07:25.203 回答
0

That's just not how it works. The .cpp is the file that matters, header files (.h) just get copied into the other .cpp files. Therefore you need to add the myclass.cpp to your sources for compiling. Or, if it's a library class, you could also compile it once into a static library (.lib) and just add that to your linker files. But you ultimately need to somehow include you implementation in the project where it's used.

于 2011-02-18T18:01:59.350 回答