我刚刚发现<stdlib.h>
和<stdio.h>
标头位于/usr/include
Ubuntu服务器的文件夹中,但找不到sys/types.h
。
我开始怀疑编译器实际上不会使用该文件/usr/include
夹中的头文件。
这是真的,文件在哪里?
我的Debian盒子(并且希望Ubuntu并没有对其热情产生太大影响)将它放入/usr/include/sys/types.h
。
最好的选择是首先执行:
find /usr/include -name types.h
然后:
find / -name types.h
如果您没有在第一个中找到它。
但是,请记住,甚至可能没有安装开发资料。我会想象将服务器盒用作服务器,如果编译器和许多其他东西不是默认安装的一部分,这也不会令我感到惊讶(但是它将有很多服务器,例如ftpd
or Apache
和依此类推)。
如果编译器将其定位在某个地方,而您只是不知道在哪里,则可以使用如下代码:
echo "#include <sys/types.h>" | gcc -E -x c - | grep /types.h
找出它的来源。
要么:
echo "#include <stdio.h>" | gcc -E -x c - | grep /stdio.h
对于您担心的其他标题。
另外:该
gcc
命令行在预处理阶段(-E
)之后停止,强制将文件视为C源代码(-x c
),并从标准输入(-
)中检索程序,在本例中为echo
语句。
决赛grep
仅去除了不重要的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句