g++/gcc 找不到名为 String.hpp 的头文件

g++/gcc cannot find header file named String.hpp

本文关键字:hpp 文件 String gcc 找不到 g++      更新时间:2023-10-16

我创建了自己的字符串类并将其命名为"String.hpp",并将此文件包含在我的"String.cpp"中。但是,g++/gcc 说无论我怎么尝试,它都找不到"String.hpp"。此外,它也找不到名为"字符串"的类。

我认为 c++ 中的字符串是小写的"字符串"。"字符串"是C++中的保留类或单词吗?

编辑:

我似乎通过重做代码正文解决了这个问题。名字都保持不变。我想下次发生这种情况时,我会查看自己的代码并尝试在那里找到问题。

在C++中,字符串是标准定义的类型,而不是关键字。并且是这样使用的

#include <string>
//elsewhere 
std::string str("hi");

如果你的编译器找不到你的字符串头,那么无论发生什么,它都不会知道你的类。

您应该像这样包含自己的标头。请注意引号,而不是角大括号。尖括号表示编译器应搜索包含目录而不是当前目录。

#include "String.hpp"
//else where
yournamepsace::String str //etc...

这不会与标准版本发生冲突,但是您应该确保它是命名空间的,因为您无疑会处理非常相似的名称。

如果编译器仍然看不到,则需要确保该文件与源文件位于同一目录中。

最后,如果这是某种编程实践,那么继续,但如果这是生产代码,请考虑使用 std::string,世界不需要另一个字符串。 :)

我怀疑你正在做一个

#include <String.hpp>

这会从编译器将搜索文件的位置中排除当前目录。 如果是这种情况,你想做

#include "String.hpp"

在这种情况下,编译器还将搜索当前目录。