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

时间:2012-04-10 14:58:50

标签: c++ string gcc g++

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

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

编辑:

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

2 个答案:

答案 0 :(得分:3)

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

#include <string>

//elsewhere 

std::string str("hi");

如果您的编译器找不到您的字符串标题,那么无论发生什么,它都不会知道您的课程。

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

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

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

如果编译器仍然无法看到,那么您需要确保该文件与源文件所在的目录相同。

最后如果这是某种编程习惯,那么继续进行但是如果这是生产代码请考虑使用std :: string,世界不需要另外的字符串。 :)

答案 1 :(得分:2)

我怀疑你在做什么

#include <String.hpp>

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

#include "String.hpp"

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

相关问题