我使用Ubuntu 15.10 64位。安装了gcc-5-multilib,g ++ - 5-multilib,libc6-i386,内核头文件和所有构建工具链。当我尝试编译32位库(对于linux)时:
gcc -m32 -fPIC -shared -Wl,-soname,mylib.so -o mylib.so mylib.c
我收到错误:
/usr/include/bits/socket.h:345:24: fatal error: asm/socket.h: No such file or directory
对于32位linux,如何在64位上使用#include <sys/socket.h>
编译代码?
答案 0 :(得分:2)
您需要提供asm的路径。只需检查路径和链接,就像这样。根据系统路径可能会有所不同。大部分时间下载gcc-multilib
都可以解决此问题。
$cd /usr/include
$sudo ln -s asm-generic/ asm
OR
$cd /usr/include
$sudo ln -s x86_64-linux-gnu/asm asm