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

C++ g++/gcc找不到名为String.hpp的头文件,c++,string,gcc,g++,C++,String,Gcc,G++,我创建了自己的字符串类,并将其命名为“string.hpp”,并将该文件包含在我的“string.cpp”中。然而,g++/gcc表示,无论我怎么做,它都找不到“String.hpp”。此外,它也找不到名为“String”的类 我认为C++中的字符串是小写的字符串。“string”是C++中的保留类或单词吗?< /p> 编辑: 我似乎通过重做代码体解决了这个问题。这些名字都没有变。我猜下次发生这种情况时,我会通过自己的代码查找问题,C++中的< P>是一个标准定义类型,不是关键字。是这样使用的吗

我创建了自己的字符串类,并将其命名为“string.hpp”,并将该文件包含在我的“string.cpp”中。然而,g++/gcc表示,无论我怎么做,它都找不到“String.hpp”。此外,它也找不到名为“String”的类

我认为C++中的字符串是小写的字符串。“string”是C++中的保留类或单词吗?< /p> 编辑:


我似乎通过重做代码体解决了这个问题。这些名字都没有变。我猜下次发生这种情况时,我会通过自己的代码查找问题,C++中的

< P>是一个标准定义类型,不是关键字。是这样使用的吗

#include <string>

//elsewhere 

std::string str("hi");
这不会与标准版本发生冲突,但是您应该确保它具有名称空间,因为毫无疑问,您将处理非常相似的名称

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


最后,如果这是某种编程实践,那么继续进行,但是如果这是生产代码,请考虑使用STD::String,世界不需要另一个字符串。p> 我怀疑你在做一件事

#include <String.hpp>

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

显示实际代码的重要部分;我们无法帮助处理此级别的信息。什么操作系统?Windows不关心文件的资本化。”字符串“”不是保留字,不应该是问题所在。请显示更多实际文件内容。在你写的时候,没有什么麻烦。但问题在于细节…你的
#include
语句的语法是什么?你如何调用编译器,包括所有参数?嗨,约翰,我也想到了。这两个文件在同一个目录中,我确实使用了“#include”String.hpp”Hi 111111,我使用了名称空间。@chlong它仍然不工作吗?你的include行是什么?你的目录结构是什么?我们需要这些信息来给你一个更好的答案。嗨,111111,我刚刚重拨了整个代码,它不再抱怨#include了。名字还是一样的。至于目录结构,两个文件“String.cpp”和“String.hpp”在同一个目录中。@chlong从源目录“g++-c String.cpp”尝试一下,会发生什么?请将实际编译器输出附加到实际编译器输出。
#include "String.hpp"
//else where
yournamepsace::String str //etc...
#include "String.hpp"