Gri*_* W. 4 c linux visual-studio visual-studio-2017
当我的 C 程序在 Visual Studio 2017 上的 Linux C++ 项目中包含 Linux 头文件(本例中为 ucontext.h)时,它无法识别该头文件。即使我包含 sys/ucontext.h,它也无法识别我应该能够用于 ucontext_t 对象的函数,例如getContext() 和 setContext()。我不应该能够在 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()
}
Run Code Online (Sandbox Code Playgroud)
在这个答案中,要执行以下操作,您需要 Visual Studio Community 2017 15.9.7+ - 在 Visual Studio Enterprise 2019 Preview 4 上测试了此解决方案。
Visual Studio 需要下载本地计算机中的所有远程标头,以确保智能感知的正确行为。
新方法“rsync_ssh”不会下载所有标头。您可以通过 sftp_ssh 使用旧方法 .zip。
0.添加远程连接。
工具->选项->跨平台->连接管理器
1.从“工具”->“选项”->“跨平台”->“连接管理器”->“远程标头 Intellisense Manager”中选择您的连接更新。接下来单击探索按钮。

2. C:\Users[YourUser]\AppData\Local\Microsoft\Linux\HeaderCache\1.0[IdNumber] 将 HeaderCache settings.xml.unused 文件重命名为 settings.xml

3.在settings.xml 文件中,将syncMethod 更改为sftp_ssh。

4.从“工具”->“选项”->“跨平台”->“连接管理器”->“远程标头 Intellisense Manager”更新标头缓存。 5.享受。




| 归档时间: |
|
| 查看次数: |
10983 次 |
| 最近记录: |