我无法使用命令gcc -m32 -Werror a.c -o a
从64位linux计算机编译为32位计算机的c程序
它显示了错误
In file included from a.c:1:
/usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory
#include <bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
我检查/usr/include/stdio.h
中的stdio.h
在我的机器上Linux kali 4.19.0-kali4-amd64 #1 SMP Debian 4.19.28-2kali1 (2019-03-18) x86_64 GNU/Linux
中包含行#include <bits/libc-header-start.h>
,而在其他ubuntu 64位中则不包含该行
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int functionFunction(char *param)
{
char *localString = "Conjunction Function";
int localInt = 0xdeadbeef;
char localString2[10];
strcpy(localString2,param);
return 1;
}
int main(int argc, char *argv[])
{
char *localString = "Main Function";
int localInt = 0x11223344;
functionFunction(argv[1]);
return 0;
}
答案 0 :(得分:1)
在几个“标准”位置中搜索头文件。
其中有/ usr / include和/ usr / local / include以及(在x-86-64机器上)/ usr / include / x86-64-linux-gnu
在安装了所有必需的“环境”后,便在/ usr / include / x86-64-linux-gnu /目录中找到了bits
目录,而该bits
目录是头文件:libc-header-start.h
头文件。
如果您使用的是64位计算机,但尚未安装所有必需的“环境”,则需要安装软件包:gcc-6-x86-64-linux-gnu