#include <bits/timesize-32.h> Use standard headers:
| Cause | Explanation | |-------|-------------| | | The header wasn’t introduced yet. | | Missing headers | Incomplete installation of libc6-dev or kernel headers. | | Wrong include path | The compiler is searching in incorrect directories (e.g., stale sysroot). | | Cross-compilation misconfiguration | The sysroot lacks the necessary 32-bit time headers. | | Non-glibc environment | Alpine/musl doesn’t have this glibc-specific internal header. | How to fix it 1. Update glibc (if possible) On Debian/Ubuntu:
sudo apt update sudo apt install libc6-dev On RHEL/CentOS/Fedora: bits timesize-32.h no such file or directory
#include <time.h> #include <sys/time.h> When cross-compiling, ensure your sysroot contains full glibc headers matching the target:
# Example for armhf sudo apt install gcc-arm-linux-gnueabihf libc6-dev-armhf-cross Manually create an empty stub file: #include <bits/timesize-32
sudo mkdir -p /usr/include/bits sudo touch /usr/include/bits/timesize-32.h : This can mask real ABI issues and cause runtime Y2038 bugs. Summary | Situation | Likely fix | |-----------|-------------| | Old Linux distribution | Upgrade glibc or the OS | | Missing dev packages | Install libc6-dev or equivalent | | Alpine / musl | Use glibc environment or patch source | | Cross-compilation | Install target-specific libc headers | | Custom sysroot | Copy glibc headers correctly |
sudo yum install glibc-devel # or sudo dnf install glibc-devel Ensure full C library development headers are installed: | | Cross-compilation misconfiguration | The sysroot lacks
If you still face the issue, check your compiler command for -I flags that might be overriding default include paths. Running gcc -v can show where it’s searching for headers.
Common root causes include:
Archiver|手機版|小黑屋|歡迎光臨 Julybee Club
GMT+8, 9-3-2026 06:43 , Processed in 0.385712 second(s), 16 queries .
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.