VSCode导入“ C”在模块上失败

时间:2019-10-22 13:22:50

标签: c go visual-studio-code cgo

请查看以下屏幕截图:

vscode with golang import "C" error

它说:

  

无法导入C(导入路径C没有软件包数据)

我已经附上了一个再现失败的示例项目,在这里:https://github.com/microsoft/vscode/files/3783446/example-project.zip

我正在将Go 1.13与Go和C / C ++的每个扩展的最新版本一起使用。 没有编译器错误,并且似乎专门将其隔离为“ vscode问题”。

是否有解决此vscode问题的方法?

3 个答案:

答案 0 :(得分:1)

那是VSCode的错误,我为此问题写了一篇中篇文章。

https://medium.com/@mourya.g9/setting-up-confluent-kafka-client-for-golang-with-vscode-7a27bb94220b。希望这会有所帮助。

答案 1 :(得分:1)

这是官方golang软件包中分发的gopls工具中的错误。

以下是问题链接:


问题报告中的信息:

internal/lsp: use Go/cgo source files instead of generated files

Using CompiledGoFiles was causing metadata lookups to fail for cgo
packages because it includes generated files in the Go build cache
when the built-in 'go list' driver is used.  GoFiles includes both
Go and cgo original file names, allowing metadata lookups to
succeed.

答案 2 :(得分:0)

问题是导入之间的多余新行,您可以尝试以下操作:

// #cgo CFLAGS: -g -Wall
// #include <stdio.h>
// #include <stdlib.h>
// #include <string.h>
// #include "cutils.h"
import "C"
import (
    "bufio"
    "encoding/json"
// ...
)

CGO import example 在这里查看与CGO相关的其他示例:
https://github.com/alessiosavi/GoUtils/blob/master/GoUtils.go