我有一个程序,在我的Raspberry Pi上使用gcc编译没有问题,其中包括以下语句:
#include <sys/socket.h>不过,我这个项目的目的是在Arduino上使用它。我已经安装了avr-gcc、avr-LibC和avrdude,但是当我尝试使用以下命令编译时:
avr-gcc Project.c -o Project我收到错误消息:
fatal error: sys/socket.h: No such file or directory我以为socket.h是C标准库的一部分。有没有可能安装这个库供avr-gcc使用,或者有没有方法可以指向这个库的目录(我自己在通常的文件夹中找不到它,但GCC似乎能找到它)?
发布于 2020-03-27 07:32:57
avr-gcc可以使用sys/socket.h吗?
不是的。它不能。不过,这并不是编译器的限制。这是运行代码所需系统的一个限制。
sys/*.h头文件不是C标准库的一部分。它们仅在兼容POSIX的操作系统上可用,并公开C函数以与操作系统交互。sys/socket.h标头提供了与操作系统通信以创建、操作套接字并与其交互的功能。
这适用于与操作系统交互的任何其他类型的头或库函数,如unistd.h、fcntl.h、pthread.h等。事实上,AVR-GCC的标准C库avr-libc不提供这样的头。
您需要查看the avr-libc documentation,以了解有关所提供的头和函数及其用法的更多信息。
https://stackoverflow.com/questions/60877241
复制相似问题