当前位置:网站首页>编译GCC遇到的“pthread.h” not found问题
编译GCC遇到的“pthread.h” not found问题
2022-07-03 04:55:00 【passenger12234】
在LFS的第五章从源码编译freestanding的GCC时遇到如下报错
./gthr-default.h:35:10: fatal error: pthread.h: No such file or directory
35 | #include <pthread.h>
书上给的参考配置指令为
../configure \
--target=$LFS_TGT \
--prefix=$LFS/tools \
--with-glibc-version=2.35 \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--enable-initfini-array \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++
我首先尝试了一下删除上述的一堆disable,使用了如下的配置指令(主要是好奇configure会不会自动推断出来一些库和feature没办法支持,比如threads)
../configure \
--target=$LFS_TGT \
--prefix=$LFS/tools \
--with-glibc-version=2.35 \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--enable-initfini-array \
--disable-nls \
--disable-shared \
--disable-multilib \
然后果不其然,我得到了如下报错
./gthr-default.h:35:10: fatal error: pthread.h: No such file or directory
35 | #include <pthread.h>
于是我尝试了make clean,然后使用书上的配置指令重新configure。不解的是,仍然得到了上面的pthread.h not found的报错(预期由于移除了线程支持,应该不再依赖pthread.h头文件)。
发现使用rm -rf *把build目录全部删除后再重新configure就成功了。这说明是前面的make clean没有讲配置文件删除干净。
一番搜索后,发现了GNU automake的说明以及GNU coding styles的说明。
在上面coding styles的文档中有如下说明
‘clean’
Delete all files in the current directory that are normally created by building the program. Also delete files in other directories if they are created by this makefile. However, don’t delete the files that record the configuration. Also preserve files that could be made by building, but normally aren’t because the distribution comes with them. There is no need to delete parent directories that were created with ‘mkdir -p’, since they could have existed anyway.
‘distclean’
Delete all files in the current directory (or created by this makefile) that are created by configuring or building the program. If you have unpacked the source and built the program without creating any other files, ‘make distclean’ should leave only the files that were in the distribution. However, there is no need to delete parent directories that were created with ‘mkdir -p’, since they could have existed anyway.
Delete .dvi files here if they are not part of the distribution.
在上面automake的文档中,定义了如下的clean语义
- If
makebuilt it, and it is commonly something that one would want to rebuild (for instance, a.ofile), thenmostlycleanshould delete it. - Otherwise, if
makebuilt it, thencleanshould delete it. - If
configurebuilt it, thendistcleanshould delete it. - If the maintainer built it (for instance, a
.infofile), thenmaintainer-cleanshould delete it. Howevermaintainer-cleanshould not delete anything that needs to exist in order to run‘./configure && make’.
所以我之前的操作问题在于不应该使用make clean,而应该使用make distclean。
边栏推荐
- Coordinatorlayout appbarrayout recyclerview item exposure buried point misalignment analysis
- Kept hot standby and haproxy
- Leetcode simple question: the key with the longest key duration
- SSM framework integration
- [research materials] 2021 annual report on mergers and acquisitions in the property management industry - Download attached
- Web security - CSRF (token)
- [SQL injection] joint query (the simplest injection method)
- General undergraduate college life pit avoidance Guide
- Market status and development prospect prediction of global SoC Test Platform Industry in 2022
- [BMZCTF-pwn] 18-RCTF-2017-Recho
猜你喜欢

JDBC database operation

Kept hot standby and haproxy

The least operation of leetcode simple problem makes the array increment

5-36v input automatic voltage rise and fall PD fast charging scheme drawing 30W low-cost chip

Thesis reading_ ICD code_ MSMN

Online VR model display - 3D visual display solution
![[research materials] 2022q1 game preferred casual game distribution circular - Download attached](/img/13/5a67c5d08131745759fdc70a71cf0f.jpg)
[research materials] 2022q1 game preferred casual game distribution circular - Download attached

Prepare for 2022 and welcome the "golden three silver four". The "summary of Android intermediate and advanced interview questions in 2022" is fresh, so that your big factory interview can go smoothly

论文阅读_清华ERNIE
![[research materials] the fourth quarter report of the survey of Chinese small and micro entrepreneurs in 2021 - Download attached](/img/01/052928e7f20ca671cdc4c30ae55258.jpg)
[research materials] the fourth quarter report of the survey of Chinese small and micro entrepreneurs in 2021 - Download attached
随机推荐
document. The problem of missing parameters of referer is solved
RT thread flow notes I startup, schedule, thread
普通本科大学生活避坑指南
Problems encountered in fuzzy query of SQL statements
Caijing 365 stock internal reference: what's the mystery behind the good father-in-law paying back 50 million?
Review the configuration of vscode to develop golang
SSM framework integration
The least operation of leetcode simple problem makes the array increment
Shell script -- condition judgment
Market status and development prospects of the global IOT active infrared sensor industry in 2022
Apache MPM model and ab stress test
Leetcode simple question: check whether the string is an array prefix
Market status and development prospect prediction of global neutral silicone sealant industry in 2022
Introduction to JVM principle
雇佣收银员(差分约束)
第十九届浙江省 I. Barbecue
Market status and development prospect prediction of the global autonomous hybrid underwater glider industry in 2022
Leetcode simple question: check whether the array is sorted and rotated
Market status and development prospect prediction of the global fire hose industry in 2022
[set theory] relational representation (relational matrix | examples of relational matrix | properties of relational matrix | operations of relational matrix | relational graph | examples of relationa