使用cgo时无法导入更多库

时间:2014-09-15 11:40:56

标签: cgo

我试图在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:错误:&#39; ConvertStringToArray&#39;未申报(首次使用此功能)

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

谢谢, 戴夫

1 个答案:

答案 0 :(得分:1)

import "C"

应该是自己的一行,并且第一次导入。那你可以

import (
  "unsafe"
)

作为下一行。