4

我试图在 Visual Studio 2013 上使用 linux 内核头文件。我想这样做是为了自动完成。

我注意到 stdio.h 文件位于 C:\Program Files\Visual Studio 12.0\VC\crt\src 中,因此我将包含内核头文件的 linux 文件夹复制到 src 文件夹中。但是,Visual Studio 似乎找不到这些头文件。

例如: #include <linux/kernel.h>

它说错误:无法打开源文件“linux/kernel.h”

我尝试将所有斜杠字符更改为反斜杠,但是,它不能解决问题。如果我想让visual studio知道这个头文件存在,我该怎么办?

我知道我可以将 kernel.h 移动到当前文件夹并使用#include "kernel.h"

但是,我想将系统头文件保留在我的计算机中,并#include <linux/kernel.h>在需要时使用。

4

3 回答 3

6
#include <kernel.h>

并将 C:\Program Files\Visual Studio 12.0\VC\crt\src\linux 添加到包含路径(如果使用的是随附的 VS2017)。

获取 kernel.h 文件,即内核源码,确定需要的内核版本,从kernel.org获取 src ,例如5.4.26

于 2013-11-06T19:09:00.147 回答
2

在 Visual Studio 2015 中,替代方法是安装Visual C++ for Linux Development和 Visual C++ for Android Development 模板。在撰写本文时,Linux 头文件仅存在于 Android 开发文件夹中,在我的机器上它是C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r10e\platforms\android-21\arch-x86_64\usr\include. 将该路径添加到包含路径,Intellisense 适用于常见的 Linux 文件,例如<sys/socket.h>.

于 2016-06-09T09:33:54.773 回答
0

VS 2017 下的当前位置,Android 文件位于单独的树中,32 位和 64 位:

C:\Microsoft\AndroidNDK{,64}\android-ndk-r{NDK_VER}c\platforms\android-{P_VER}\arch-x86{,_64}\usr\include

NDK_VER -- versions of the NDK, currently 12,13,15  
P_VER   -- target android platform version (aka level), currently the highest is 26

例子:

C:\Microsoft\AndroidNDK\android-ndk-r15c\platforms\android-26\arch-x86\usr\include C:\Microsoft\AndroidNDK\android-ndk-r15c\platforms\android-26\arch-x86_64\usr \include C:\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-26\arch-x86\usr\include C:\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-26\arch-x86_64 \usr\包括

这反映了 VS 中的一般“新风格”,其中构建平台和目标平台是分离和正交的。arch-{arm,mips}{,64}arch目标平台版本下也有6个文件夹。

AndroidNDK 和 AndroidNDK64 中的包含文件相同,并且在一个 NDK 版本下,只有 machine 和 asm 文件夹下的文件不同(对于 Intel 和 Mips,即使 asm 下的文件对于 32 位和 64 位也是相同的)。

于 2020-09-28T22:29:06.453 回答