c - 为什么 bits/libc-header-start.h 文件夹包含在 stdio.h header 中

标签 c linux gcc glibc

我无法使用命令 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;
}

最佳答案

尝试安装 gcc-multilib:

可能(不是 100% 肯定)有效:但在我的场景中它确实有效;

sudo apt-get install gcc-multilib

关于c - 为什么 bits/libc-header-start.h 文件夹包含在 stdio.h header 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57519838/

相关文章:

linux - 如何在 Synology Diskstation DS713+ 上安装 node.js

c - 硬编码巨型数组进行基准测试的最佳方法

c - 递归地反向链接列表

c - 获取另一个二进制执行的时间 C

linux - GLib.Settings.changed 事件未触发

linux - 如何通过对面的 SSH 隧道从计算机显示网站网页?

linux - 如何重写文件内容? Linux x86_64、汇编、GAS

gcc - 交叉编译 : GCC ignores --sysroot

C- while 循环无法解释的行为

c - 为什么 fflush(stdin) 在 while 循环中执行两次以检查 scanf() 输入?