我按照https://medium.com/learning-the-go-programming-language/calling-go-functions-from-other-languages-4c7d8bcc69bf中的教程使我的节点应用程序能够调用 golang 函数。提供的示例就像一个魅力。
但是,我确实无法在另一种情况下实施。在这里,我想通过仅提供绝对路径来打开一个文件并调用 Go 的函数,但它总是告诉我由于没有这样的文件而无法找到该文件。我试图直接在 Go 中运行它并且它有效!
我做错了吗,或者这是一个实际的错误/未完成的功能?
这是我为 c-style lib 构建的 golang 源代码:
package main
import "C"
import (
"bufio"
"fmt"
"log"
"os"
)
func main() {}
//export ReadSomething
func ReadSomething(filePath string) {
file, err := os.Open(filePath)
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}
我用这个命令构建它:
go build -buildmode=c-shared -o simpleread.so main.go
胡子哥哥
相关分类