我在c ++语言下使用ubuntu。
我有一个问题:我使用#include"header.h"
。这跟/path/header.h
一样吗?我问你这个问题,因为我看到的不一样。需要一些解释。
我问你这个问题,因为我已经在我的电脑上下载并安装了gsoap。我在一个文件夹中添加了所有必需的依赖项,并且我试图在不安装gsoap的情况下运行应用程序...在另一台计算机上。我有一些错误..我忘了添加stdsoap2.h文件...我今天会添加它..在我的文件夹..
答案 0 :(得分:1)
答案取决于:
如果你的 include路径中添加了“path /”,那么仅包含“header.h”将起作用,因为编译器已经知道查找头文件的路径,如果没有 那么你必须包含整个路径“path / header.h”,以便编译器知道在哪里查找头文件。
答案 1 :(得分:0)
不,从概念上讲它们不一样。然而,结果可能是相同的。这取决于您如何告诉编译器查找标头(-I
中的g++
标志)。如果您使用-I /path/
进行编译,那么您会找到/path/header.h
#include "header.h"
。如果您不使用包含路径标志,那么您必须编写#include "/path/header.h"
。
答案 2 :(得分:0)
如果header.h
位于path/
目录中,那么#include "header.h"
将适用于那些标题和源文件(#include
header.h恰好相同目录为header.h
(path/
)。
另一方面,如果您#include
- header.h
在与path/
不同的目录中的文件中,则上述方式无效。为了使其有效,您可以尝试两种不同的方法:
#include
header.h
的完整路径。您的#include
将如下所示:
#include "path/header.h"
path/
目录包含在makefile
中。这将使g++
在这些目录中查找header.h
。这可以这样完成(在makefile中):g++ <some parameters> -Ipath/ -c main.cpp -o main.o
(假设从header.h
内调用main.cpp
)。如果你选择这种方式,那么#include
也会改变,如下:#include <header.h>
。注意使用-I
标志作为g ++的参数。该标志告诉g ++也要查看其他目录。