编译Hello World时找不到'stdio.h'文件

时间:2018-08-09 16:56:51

标签: c xcode macos compiler-errors include

编辑:在此博文末尾添加了<div class="bar" id="foo"> Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus id possimus, nostrum mollitia dolores neque amet esse commodi facilis temporibus quisquam molestiae eligendi non ullam vitae et repellendus repellat velit? Lorem ipsum dolor, sit amet consectetur adipisicing elit. Molestiae voluptatum officia sint, omnis quibusdam labore. Illo, consequuntur aliquid saepe voluptates, nulla accusantium aspernatur in voluptatem minima a magnam nemo explicabo. </div> 的输出。

我使用的是旧的Xcode,因为我的内核扩展将支持El Capitan。通过从较早的Xcode构建中复制10.11 SDK可以在8.3中使用。

$cc -v main.c

我正在尝试构建一个用户空间命令行工具来测试我的内核扩展。

这是一个中等程度的常见问题,但是到目前为止,我尝试过的所有解决方案都没有奏效。在Visual Studio中发生了很多关于它的报道,而不仅仅是Xcode。

现在,我重新安装了命令行工具。我将SDK从“最新的macOS”更改为“ macOS 10.12”。

源文件称为“ main.c”,即 not “ main.cpp”。

#include <stdio.h>   // 'stdio.h' file not found

int main( int argc, char **argv )
{
   printf( "Hello World!\n" );

   return 0;
}

$ ls -l /usr/include/stdio.h
-r--r--r--  1 root  wheel  19154 Feb  4  2017 /usr/include/stdio.h

$ ls -l /Applications/Xcode_8.3/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/stdio.h
-r--r--r--  7 mike  staff  19154 Feb  3  2017 /Applications/Xcode_8.3/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/stdio.h

1 个答案:

答案 0 :(得分:0)

我不应该喝酒并编码:

我的项目起初只有一个目标,用于内核扩展。后来,我为命令行工具添加了第二个目标。

当我为命令行工具创建一个新的源文件时,该源文件以某种方式被添加到了内核扩展的目标中。更改工具的标题搜索路径设置对我的问题没有影响,因为源不在工具的目标中。

内核扩展-设备驱动程序-具有仅来自Kernel.framework的标头,其中没有stdio.h文件。

我现在闭嘴。