我需要运行一个演示程序ba_demo.cpp
,它位于文件夹结构“C:/root/demo_parent1/demo_parent2/demo.cpp”中,此文件中使用了以下代码。< / p>
#include "root/sub1/sub2/header_file.h".
该文件位于
'C:/root/sub1/sub2/header_file.h'
当我尝试通过命令
编译演示程序时C:\root\demo_parent1\demo_parent2> gcc demo.cpp
找不到头文件并抛出错误。为了成功运行演示程序,我应该对命令进行哪些更改?
答案 0 :(得分:3)
首先,您必须通过添加标记root
来通知编译器在哪里查找-IC:
目录
所以你的命令看起来像这样:
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
请注意,由于您在某些&amp; nix模拟器下使用Windows,我的示例中的斜线可能是错误的,但我现在无法检查它们。使用谷歌检查如何正确处理它们。
编辑:另外,不要忘记采取Lukas Holt的建议并使用g ++!使用适当的编译器来使用正确的语言非常重要。答案 1 :(得分:1)
您的.cpp文件位于:C:/root/demo_parent1/demo_parent2/demo.cpp
您包括:
#include "root/sub1/sub2/header_file.h"
这是一条相对路径。您需要使用-I标志指定include目录,或者将header_file.h移动到C:/root/demo_parent1/demo_parent2/root/sub1/sub2/header_file.h。
最简单的解决方案是#include "header_file.h"
,并将其移动到与demo.cpp相同的目录中。
然后您将能够使用gcc编译它,并执行生成的文件。