我目前正在尝试通过运行Ubuntu的虚拟机编译我的文件traceroutet.c
,我认为这会导致问题。我也通过我大学的VPN访问文件,这会导致问题吗?
每当我尝试使用gcc -o traceroutet traceroutet.c
通过vm的终端进行编译时,我会收到此错误:
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有关吗?
答案 0 :(得分:1)
我非常怀疑错误与虚拟机有关。
我认为这取决于你如何#include你的ip.h:如果你写#include "ip.h"
(注意双引号),那么你让编译器找到位于同一目录下的'ip.h'作为.c文件。它的实现定义了编译器是否会继续在系统头中进行搜索。由于您最有可能尝试包含系统范围的ip.h
而不是您自己的与IP相关的头文件,因此您应该使用尖括号(并使用正确的相对路径)来包含它:#include <linux/ip.h>
。< / p>