【问题标题】:Trouble compiling with gcc through virtual machine通过虚拟机使用 gcc 编译时出现问题
【发布时间】:2013-11-27 22:43:46
【问题描述】:

我目前正在尝试通过运行 Ubuntu 的虚拟机编译我的文件 traceroutet.c,我认为这是导致问题的原因。我也在通过我大学的 VPN 访问文件,这会导致问题吗?

每当我尝试使用gcc -o traceroutet traceroutet.c 通过虚拟机终端进行编译时,我都会收到此错误:

traceroutet.c:13:16: fatal error: ip.h: No such file or directory

compilation terminated

问题是,我的头文件与源文件保存在同一个文件夹中,所以我认为gcc -o 可以在这里工作吗?我也尝试在编译时使用-I/h/SCC203/Lab 2/ip.c,但我得到了类似的错误。

我已经使用gcc 一段时间了,从来没有遇到过问题,所以我猜这与虚拟机或VPN有关?

【问题讨论】:

  • -I/h/SCC203/Lab 2/ip.c 无论如何都是错误的:它包含一个空格,并且必须转义该空格,例如 -I/h/SCC203/Lab\ 2ip.c 真的是包含 ip.h 的目录名称吗?)无论如何,如果您向我们展示您的#include 指令会有所帮助。
  • 感谢您告诉我如何逃离空间。是的,我已经尝试过 ip.c 和 ip.h

标签: c gcc compiler-errors virtual-machine traceroute


【解决方案1】:

我很怀疑这个错误与虚拟机有关。

我认为这取决于你如何#include你的ip.h:如果你写#include "ip.h"(注意双引号),那么你让编译器在与.c 文件。编译器是否会继续在系统头文件中搜索是实现定义的。由于您很可能尝试包含系统范围的 ip.h 而不是您自己的与 IP 相关的头文件,因此您应该使用尖括号(并使用正确的相对路径)将其包含在内:#include <linux/ip.h>

【讨论】:

  • 谢谢!在 #include 语句中添加 linux/ 会产生重大影响!
猜你喜欢
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多