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 に答える