【问题标题】:C++ : includes when code is written in text editor, linux [closed]C ++:包括在文本编辑器中编写代码时,linux [关闭]
【发布时间】:2014-08-22 16:29:10
【问题描述】:

我只有几周的 C++ 自我入门。在面试过程中,我会被要求在文本编辑器中编写一个简单的任务并编译它,首先我需要包含 C++ 库,我知道如何在 IDE 中执行,但我如何在文本编辑器中执行,可以有人帮忙吗?

【问题讨论】:

  • 打开您的文本编辑器,输入内容,将其保存为一个名为 e.g. foo.cpp,编译它,修复错误,测试,调试,起泡,冲洗,重复......
  • 我是一步一步做的,但它会返回没有意义的错误,除了相同的东西在 Windows Visual Studio 中完美运行,据我所知,这是一个包含问题。
  • 这些错误可能对没有意义,但这不是保密的理由。
  • 如果你告诉我如何在这里发布代码,我可以证明代码一切正常
  • @MartaGinosian 您的问题下方有一个edit 链接,可以让您更新问题的文本。您可以使用它来包含您用于编译的命令以及您遇到的错误。输入该信息后,您可以用鼠标将其全部选中并单击{} 按钮以指示文本已预先格式化(代码)。

标签: c++ compilation include text-editor


【解决方案1】:

tchar.h 是 Microsoft 特定的头文件,因此当您尝试使用 g++ 进行编译时,至少会看到如下所示的错误

foo.cpp:1:19: error: tchar.h No such file or directory

您可能会看到一大堆其他错误,这些错误与您所有使用tchar.h 中定义的内容的代码都使用未定义的数据类型有关。

【讨论】:

  • @MartaGinosian targetver.h 也是如此 - 它通常是 Visual Studio 生成的文件,并填充了 Microsoft 特定的内容。所以尝试注释掉 include-s 和 compile。
【解决方案2】:

您可以像往常一样添加它们...

但是,如果头文件不在您正在使用的目录中,您可能需要在编译时向 g++ 发出附加命令。

g++ -o new_file_name -I /header/file/directory file.cpp

这将告诉编译器在/header/file/directory 中查找#includes,并在编译file.cpp 时包含它们。

可以使用-L 标志而不是-I 以相同的方式包含库。

【讨论】:

  • marta@marta-HP-ProBook-455-G1:~/Documents/ArrayFunctionCollection$ g++ -o header.h -I /header/file/directory header.h header.h:3:19 :致命错误:tchar.h:没有这样的文件或目录编译终止。该错误不可重现,因此很可能是硬件或操作系统问题。 marta@marta-HP-ProBook-455-G1:~/Documents/ArrayFunctionCollection$ ^C marta@marta-HP-ProBook-455-G1:~/Documents/ArrayFunctionCollection$
  • 这是它的回报
  • 我应该更清楚 - new_file_name 是您要调用的新编译文件。您不想将头文件的名称放在该位置。因此,如果您的 .cpp 文件名为 foo.cpp 并且您希望它在编译后具有名称 foo 您将发出命令: g++ -o foo -I /header/file/directory foo.cpp
  • @MartaGinosian 然而,这确实显示了我在回答中所描述的内容。 tchar.h(及其定义的类型)不是标准头文件。它特定于 Microsoft 的 C++ 实现,因此您无法在非 Windows 系统上使用它。
  • 不,它不起作用或者我做错了什么
【解决方案3】:

其实很简单。将这些行添加到您的 .cpp.h 文件的顶部:

#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include <time.h>
#include <string>
#include <vector>

...你就完成了!

【讨论】:

  • 当我添加这些时编译器似乎无法识别
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
相关资源
最近更新 更多