【发布时间】:2012-03-07 07:59:41
【问题描述】:
假设我的项目目录有2个子目录A和B,A目录包含:A.h和A.cpp,B目录包含:B.h和B.cpp,我的根目录包含main.cpp
现在内容:
啊哈:
#include"../B/B.h"
a();
A.cpp:
#include"A.h"
a()
{
b();
}
B.h:
b();
B.cpp:
b()
{
cout<<"Blah Blah Blah";
}
main.cpp:
#include"A/A.h"
main()
{
a();
}
并使用以下代码编译代码:
c++ main.cpp A.cpp B.cpp
问题很简单:在第一个文件(A.h)中,我不想将第一行写成
#include"../B/B.h"
如何将其更改为 #include"B/B.h" 或 #include"B.h"?
【问题讨论】:
-
您使用的是哪个编译器?我会假设 G++ ...但永远不会知道。
-
为什么需要在 A.h 中包含 B.h?我在那里看不到任何依赖关系。
-
@@J.N:我使用的是 ubuntu,所以我假设是 gcc。我只是在命令行中输入了“c++ main.cpp A.cpp B.cpp”我不太熟悉它们的区别。如果有我可以检查的地方或命令,请告诉我......让你知道结果:)
-
@@akhisp:我正在调用 B.h. 中定义的 b()。我猜它被称为依赖项并且需要包含。不是吗?
-
旁注:您的标题丢失include guards
标签: c++ linux compilation