我正在使用Buildroot2018.02.7为i386 PC构建一个简单的Linux系统,作为在嵌入式ARM系统上做同样事情的先导。在构建util-linux模块时,我总是遇到这样的问题:
CC lib/libcommon_la-path.lo
lib/pager.c:11:17: fatal error: err.h: No such file or directory
#include <err.h>
^
compilation terminated.
Makefile:8596: recipe for target
我正在做一些网络编程。我正在尝试创建tcp和ip报头。我在阅读中发现,有两种方法可以做到这一点: 1)基于linux和2)基于BSD。
我希望使用linux方法来实现这一点,实际上包括linux/ip.h和linux/tcp.h。我要查找的头类型是
struct tcphdr {
unsigned short source;
unsigned short dest;
unsigned long seq;
unsigned long ack_seq;
unsigned short doff:4;
unsigned char syn;
我在程序集中看到过Hello程序的例子,一个在MacOS中,另一个在Linux中。但是它们之间的区别是,MacOS使用绝对内存位置进行系统调用,而Linux不使用。为什么MacOS不能只使用1或内核用于系统调用write的任何数字
; MacOS
mov rax, 0x02000004 ; system call for write
; Linux
mov rax, 1 ; system call for write
我试图在linux中编译timersub()函数,但我总是得到:
test.c: In function ‘main’:
test.c:27:2: warning: implicit declaration of function ‘timersub’ [-Wimplicit-function-declaration]
timersub(&now, &then, &diff);
^
/tmp/ccLzfLsl.o: In function `main':
test.c:(.text+0x55): undefined reference to `time