【问题标题】:How to run C++ program using GCC?如何使用 GCC 运行 C++ 程序?
【发布时间】:2014-08-22 14:27:48
【问题描述】:

我需要运行一个演示程序ba_demo.cpp,它位于文件夹结构“C:/root/demo_parent1/demo_parent2/demo.cpp”中,该文件中使用了以下代码。

#include "root/sub1/sub2/header_file.h".

文件在

'C:/root/sub1/sub2/header_file.h'

当我尝试通过命令编译演示程序时

C:\root\demo_parent1\demo_parent2> gcc demo.cpp

它没有找到头文件并抛出错误。为了成功运行演示程序,我应该对我的命令进行哪些更改?

【问题讨论】:

  • 首先,您不会使用gcc demo.cpp 执行任何操作,这会编译它(创建可执行程序)。然后你需要运行它。也就是说,你在 `c:\root\demo_parent1\demo_parent2\root\sub\sub2` 中有一个文件 header_file.h 吗?
  • @nerdwaller 是的..我确实有一个 header_file.h..但是在 C:/root/sub1/sub2
  • 你的头文件在哪里
  • @LucasHolt 如何设置路径?
  • 您可以尝试使用 gcc 的 -I 标志来指定查找头文件的路径。此外,由于这是一个 C++ 程序,您可能希望使用 g++ 而不是 gcc。

标签: c++ gcc


【解决方案1】:

首先,您必须通过添加标志-IC: 来告知编译器在哪里寻找root 目录 所以你的命令看起来像这样:

C:\root\demo_parent1\demo_parent2> g++ demo.cpp -IC:

但这不切实际。更好的改变包括

#include header_file.h

只添加 /root/sub1/sub2/ 目录,如下所示:

C:\root\demo_parent1\demo_parent2> g++ demo.cpp -IC:\root\sub1\sub2\

现在您已将程序编译为a.out 文件。你通过

执行它
C:\root\demo_parent1\demo_parent2>./a.out

您可以像这样将输出名称更改为demo.exe

C:\root\demo_parent1\demo_parent2> g++ demo.cpp -IC:\root\sub1\sub2\ -o demo.exe

请注意,由于您在某些 &nix 模拟器下在 Windows 上工作,因此我的示例中的斜线可能是错误的,但我现在无法检查它们。使用谷歌检查如何正确处理它们。

编辑:另外,不要忘记接受 Lukas Holt 的建议并使用 g++!为正确的语言使用正确的编译器非常重要。

【讨论】:

  • 如果斜杠有问题,通常像这样的语法在 cygwin bash shell 和其他东西中可以使用 /c/root/sub1/sub2/。
  • 我从来没有在 Cygwin 下工作过,上次我在 MinGW 下工作时,我完全搞砸了,但一切正常。
【解决方案2】:

您的 .cpp 文件位于:C:/root/demo_parent1/demo_parent2/demo.cpp

你包括:

#include "root/sub1/sub2/header_file.h"

这是一个相对路径。您需要使用 -I 标志指定包含目录,或者将 header_file.h 移动到 C:/root/demo_parent1/demo_parent2/root/sub1/sub2/header_file.h。 最简单的解决方案是 #include "header_file.h" 并将其移动到与 demo.cpp 相同的目录中。

然后你就可以用gcc编译它,并执行生成的文件了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-28
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2010-09-09
    相关资源
    最近更新 更多