Cygwin gcc找不到stdio.h
我的64位Win7上有一个64位Cygwin。Cygwin gcc找不到stdio.h,gcc,cygwin,Gcc,Cygwin,我的64位Win7上有一个64位Cygwin。 我安装了gcc核心和gcc-g++软件包。 我制作了一个简单的C程序: #include <stdio.h> int main() { exit(0); } gcc核心软件包附带的stdio.h在我的电脑上的这个位置(根据Cygwin的软件包搜索程序也可以): /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/include/ssp/stdio.h ssp目录是什么意思?为什么stdio.h放在那里? 为什么
我安装了gcc核心和gcc-g++软件包。
我制作了一个简单的C程序:
#include <stdio.h>
int main() {
exit(0);
}
gcc核心软件包附带的stdio.h
在我的电脑上的这个位置(根据Cygwin的软件包搜索程序也可以):/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/include/ssp/stdio.h
ssp
目录是什么意思?为什么stdio.h
放在那里?为什么gcc找不到此位置的
stdio.h
文件?在ssp
目录中找到的文件不是
的版本。它仅包含有关gcc中堆栈损坏保护器功能的
中某些函数的额外信息
实际的
应该在/usr/include
中
-v
输出中的这一行非常有趣:
/usr/inlude
你是如何得到一个没有c
的/usr/inlude
?
哎呀,基思·汤普森在编辑中删除了inlude
中缺少的c
因此,您的gcc应该找到/usr/include/stdio.h
,如果您有它的话。它在那里吗?从包文件列表中可以看出,它应该是cygwin基本系统的一部分(即,即使您没有安装编译器,它也应该在那里)
您是否缺少任何其他头文件<代码>和
是很好的候选测试
以下是一些用于调查cygwin包以及该包是否包含该文件的命令:
cygcheck -f /usr/include/stdio.h
cygcheck -c cygwin
cygcheck -l cygwin | grep stdio
更新:看来我落后于时代,现在有了一个cygwin-devel
软件包。头文件不再位于基本cygwin
包中。要在最新的cygwin上检查正确的软件包,请使用
cygcheck -c cygwin-devel
正如在评论中已经做的那样。由于它被列为“不完整”,解决方案可能是使用cygwin的安装程序重新安装它。我认为您的实际源文件具有
\include
,而不是\include stdio.h
。我已经修正了你问题的格式;请确认它仍然是准确的。而退出需要#包含,尽管这不是问题的原因。你应该添加一个包含目录,正如Wumpus Q.Wumbley指出的:这不是你想要的文件。@Keith Thompson:你说得对,我在另一台机器上安装Cygwin时编辑PostMeans时犯了错误,gcc工作正常。正如Wumpus Q所说,我看到我的机器上缺少一个/usr/include/stdio.h
。我的机器上也没有/usr/include/
中的string.h和stdlib.h。所以在安装cygwin-devel的时候有些东西被破坏了???cygwin安装程序报告cygwin-devel软件包已安装(保留),但是我的计算机中/usr/include/有85个文件,而另一台工作的计算机上有112个文件是:`cygcheck-c cygwin-devel cygwin软件包信息包版本状态cygwin-devel 1.7.33-1不完整`
cygcheck -c cygwin-devel