python - Go buildmode 选项不生成头文件
问题描述
我正在编写一个 python 程序,它可以在某个触发器上调用一个 go 程序。我正在关注一些链接并了解了生成 .so 和另一个头 (.h) 文件的 buildmode。我尝试添加两个整数示例并且工作正常。但是,就我而言,没有生成头文件。
我在 go 中使用的特定程序是一个修改后的示例,它连接到 TTN(The Things Network),程序结构如下所示:
package main
import "C"
import (
// "encoding/hex"
// "encoding/json"
"fmt"
// "io/ioutil"
// "os"
ttnsdk "github.com/TheThingsNetwork/go-app-sdk"
ttnlog "github.com/TheThingsNetwork/go-utils/log"
"github.com/TheThingsNetwork/go-utils/log/apex"
"github.com/TheThingsNetwork/go-utils/random"
"github.com/TheThingsNetwork/ttn/core/types"
)
const (
sdkClientName = "my-amazing-app"
)
func main() {
log := apex.Stdout() // We use a cli logger at Stdout
log.MustParseLevel("debug")
ttnlog.Set(log) // Set the logger as default for TTN
...
...
}
如果尝试从简单的 python 程序调用,我会收到以下错误:
Loaded go generated SO library
Traceback (most recent call last):
File "ttnPublishCall.py", line 5, in <module>
result = lib.main()
File "/usr/lib/python3.7/ctypes/__init__.py", line 369, in __getattr__
func = self.__getitem__(name)
File "/usr/lib/python3.7/ctypes/__init__.py", line 374, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: ./publishOnly.so: undefined symbol: main
我已经尝试编写自定义头文件(提到主函数),但它不起作用。此外,我尝试创建另一个可以从主函数调用但没有帮助的函数。
解决方案
推荐阅读
- css - 更改 wordpress 中的字体系列覆盖 WPBakery 页面构建器
- arrays - 如何在 PostgreSQL 中创建类型?
- apache-spark - 分别配置 Spark 和 Hadoop(haddop 和 spark 使用哪个版本)
- madge - Madge 跳过导入的打字稿文件
- powershell - 删除 Pester 模拟函数
- java - 我想创建一条将 2 个 JTable 连接在一起的直线
- docker - 使用 jhipster monolith 应用程序构建 docker 映像并推送到我的 dockerhub
- node.js - Unhandled promise rejection. This error originated either by throwing inside of an async function ... Node + Puppeteer
- asp.net-mvc - GitHub 在将新的 mvc 项目推送到存储库时返回状态码 403
- google-chrome - 以编程方式在 Google Drive 中设置 Chrome 下载位置