首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将std_lib_facilities.h头文件放在哪里?

将std_lib_facilities.h头文件放在哪里?
EN

Stack Overflow用户
提问于 2017-07-15 23:07:47
回答 2查看 2.8K关注 0票数 0

我刚刚开始编程,并且正在使用Stroustrup的书:“编程:使用C++的原则和实践(第二版)”,并且不知道这个std_lib_facilities.h对于Linux用户需要去哪里。我觉得有点奇怪的是,他只为使用Visual Studio的Windows用户提供帮助。

我搜索了/usr/include/c++下的c++文件,注意到我有两个c++文件: 5.4.0和5。为什么会这样呢?我不确定是否需要在这两个文件夹中添加std_lib_facilities.h文件。

尽管如此,我还是尝试了几种方法来找到解决方案:

  1. 我在桌面上创建了一个项目文件夹,并将源代码和std_lib_facilities.h文件放在同一级别上,但我收到了一个警告错误。 在/usr/include/c++/5/ext/散列_map:60:0包含的文件中,来自std_lib_facilities.h:34,from Hallo_Welt.cpp:1: Hallo_Welt.cpp:1警告:警告:该文件至少包含一个过时或过时的标头,可以在以后的某个日期无需进一步通知就将其删除。请使用具有同等功能的非推荐界面。有关替换头和接口的列表,请参阅文件backward_warning.h。若要禁用此警告,请使用-Wno-取消推荐。-Wcpp警告
  2. 接下来,我在项目文件夹的子目录" header“下创建了头文件。这也不起作用,我得到了一个错误: g++ Hallo_Welt.cpp Hallo_Welt.cpp:1:10: error:#include预期的“文件名”或包含std_lib_facilities.h ^ Hallo_Welt.cpp: In function‘int():Hallo_Welt.cpp:4:2: error:’cout‘在此作用域cout<<"Hallo \n“中未声明;

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-12 22:47:49

只需将头文件与可执行文件放在同一个文件夹中,并将其包括在内:

代码语言:javascript
复制
// assumes this file is named hello_world.cpp

#include "std_lib_facilities.h"

int main()
{
    cout << "Hello, World!\n";
    return 0;
}

然后使用以下方法构建:

代码语言:javascript
复制
g++ hello_world.cpp

这将在同一个文件夹中将可执行文件构建为a.out。若要指定另一个二进制名称,请使用-o参数:

代码语言:javascript
复制
g++ hello_world.cpp -o hello_world

为了防止将标题复制到每个章节的多个文件夹中(假设您使用了这样的文件夹管理),您可以将其放在一个include文件夹中,如下所示:

代码语言:javascript
复制
+ ~/learn_cpp/
|
+--+ ch01/
|  |
|  +--- hello_world.cpp
|
+--+ include/
   |
   +--- std_lib_facilities.h

然后,从hello_world.cpp内部,您可以将其包含在如下相对路径中:

代码语言:javascript
复制
#include "../include/std_lib_facilities.h"

这使其保持简单,并防止将其添加到系统上的全局标题中。无论如何,您将在几章中停止使用这个标题。

票数 0
EN

Stack Overflow用户

发布于 2017-07-16 22:53:12

您在1中所做的工作是明智的;您不应该将您自己的任何源代码(并且Stroustrup的课件属于该类别)放置在c++编译器的安装目录中。

该消息只是一个警告,可以告诉您头(std_lib_facilities.h)引用了旧代码。你现在可以安全地忽略它。如果您在网上搜索std_lib_facilities.h,您可能会找到该文件的更新版本。

至于为什么有两个/usr/include/c++目录,是为了允许编译器的不同版本(例如,在更新之后)共存。您可以通过在命令提示符下键入g++来发现gcc -xc++ -E -v -搜索包含文件的路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45123528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档