在我的Linux系统(Debian
Jessie)
ucontext.h上,
usr/include其中包含的
sys/ucontext.h内容
gcc将在中找到
usr/include/i386-linux-gnu/sys。第一个定义功能
getcontext和
setcontext。第二个定义数据结构
ucontext_t等。
在Windows主机上,VCLinux在中安装了第二个副本
ucontext.h(定义了数据结构)
C:Program Files(x86)Microsoft Visual Studio 14.0VCLinuxincludeusrincludex86_64-linux-gnusys。但是第一个
ucontext.h不存在。
VCLinux / Visual Studio将在Linux远程平台上编译并运行此程序:
#include <ucontext.h>#include <iostream>int main(){ ucontext ucxt; ::getcontext (&ucxt); std::cout << ucxt.uc_flags << std::endl; return 0;}但是IntelliSense不会知道功能
getcontext和/
setcontext或关联的数据结构。因此,您将在名称下看到很少的红色弯曲,并且没有完成帮助。
您可以复制第一个副本
ucontext.h并将其
C:Program Files (x86)Microsoft Visual Studio14.0VCLinuxincludeusrinclude放在Windows主机上。这样,一切都会正常进行。您可能会在VCLinux
GitHub站点上引发缺少标题的问题。
注意:Windows路径适用于Visual Studio2015。2017年将有所不同。
适用于VCLinux 1.0.6。
==============
更新18年4月10日
Microsoft已解决Linux系统之间标准包含文件位置差异的问题。如该Visual C
++博客文章中所述,特定于
GCC安装程序的标头是从Linux远程复制并按每个连接存储在Windows主机上的。



