【问题标题】:Cannot import more libraries when using cgo使用 cgo 时无法导入更多库
【发布时间】:2014-09-15 19:52:16
【问题描述】:

我正在尝试用 C 重写一些 Go 代码,主要是作为一种学习经验,但是我遇到了一个在其他地方找不到答案的问题。

我正在尝试运行以下代码:

package conv

/*
#include <stdio.h>
int** ConvertStringToArray(char* str){
    printf("%s\n", str);
}
*/

import (
    "C"
    "unsafe"
)

func ToArrayGo(str string) [][]int {
    return nil // TODO
}

func ToArrayC(str string) [][]int {
    C.ConvertStringToArray(C.CString(str))
    return nil // TODO
}

如果我注释掉不安全的导入,它工作得很好,但是当我添加它时,我会在 go install/test 命令中收到以下错误:

37: 错误:'ConvertStringToArray' 未声明(在此函数中首次使用)

每当我尝试导入任何其他库时也是如此。任何帮助都将不胜感激,甚至可以重定向到相关问题(我已经看过但可能错过了一个)。

谢谢, 戴夫

【问题讨论】:

    标签: cgo


    【解决方案1】:
    import "C"
    

    本身应该是一行,并且是第一个导入。然后就可以了

    import (
      "unsafe"
    )
    

    作为下一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      相关资源
      最近更新 更多