大佬教程收集整理的这篇文章主要介绍了在Visual Studio 2017 Linux项目中无法识别Linux头文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的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.0\VC\linux\include\usr\include\x86_64-linux-
gnu\sys
。但是第一个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 studio
14.0\VC\linux\include\usr\include
放在windows主机上。这样,一切都会正常进行。您可能会在VCLinux
GitHub站点上引发缺少标题的问题。
注意:windows路径适用于Visual studio2015。2017年将有所不同。
适用于VClinux 1.0.6。
==============
更新18年4月10日
@H_626_2@microsoft已解决linux系统之间标准包含文件位置差异的问题。如该Visual C ++博客文章中所述,特定于GCC
安装程序的标头是从linux远程复制并按每个连接存储在windows主机上的。
在这种情况下,在Visual studio 2017上针对我的C程序的Linux C
项目中使用这些功能吗?
我正在编写的代码:
#include <stddef.h>
#include <String.h>
#include <sys/ucontext.h>
// If I use ucontext.h instead,it gives the error: cAnnot open source file ucontext.h
//TCB structure
typedef struct TCB_t {
struct TCB_t *next;
struct TCB_t *prev;
ucontext_t context;
} TCB_t;
void init_TCB(TCB_t *tcb,void *function,void *stackP,int stack_sizE)
{
memset(tcb,'\0',sizeof(TCB_t));
tcb->context.uc_stack.ss_sp = stackP;
tcb->context.uc_stack.ss_size = (size_t)stack_size;
int c = getcontext(tcb->context); // CAnnot resolve field getcontext()
}
以上是大佬教程为你收集整理的在Visual Studio 2017 Linux项目中无法识别Linux头文件全部内容,希望文章能够帮你解决在Visual Studio 2017 Linux项目中无法识别Linux头文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。