1

我试图用 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' 未声明(在此函数中首次使用)

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

谢谢,戴夫

4

1 回答 1

2
import "C"

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

import (
  "unsafe"
)

作为下一行。

于 2014-09-15T11:52:16.447 回答