当前位置: 首页 > 面试题库 >

golang:使用sqlite3.c的CGO / clang

蔚和安
2023-03-14
问题内容

我想编译以使用osx。使用以下命令:GOOS = linux GOARCH = arm CGO_ENABLED = 1 go build -o foo
main.go

但我得到:运行时/ cgo叮当声:错误:编译期间未使用参数:’-mno-thumb’

我使用了这个包:https : //github.com/mattn/go-
sqlite3

我尝试了提示:https :
//github.com/mattn/go-sqlite3/issues/106

谢谢你的帮助:-)


问题答案:

“正如您链接到的错误报告所言,您将需要一个针对ARM
Linux的C编译器。尽管Go工具链随附了交叉编译纯Go代码所需的一切,但它不包含交叉编译C所需的工具。使用cgo的软件包的组件”。–詹姆斯·亨斯特里奇

结果,我将其编译到arm设备(raspberrypi)上。



 类似资料:
  • 问题内容: 我正在使用FFmpeg为Windows平台编写一个应用程序,它是golang包装器goav,但是我在理解如何使用C指针获取对其所指向的数据数组的访问方面遇到了麻烦。 我正在尝试获取存储在AVFrame类中的数据,并使用Go将其写入文件,最后使用OpenGl中的纹理使视频播放器具有出色的过渡效果。 我认为了解如何转换和访问C数据将使编码变得容易得多。 我已经删除了C代码的所有相关部分,包

  • 13.4. 通过cgo调用C代码 Go程序可能会遇到要访问C语言的某些硬件驱动函数的场景,或者是从一个C++语言实现的嵌入式数据库查询记录的场景,或者是使用Fortran语言实现的一些线性代数库的场景。C语言作为一个通用语言,很多库会选择提供一个C兼容的API,然后用其他不同的编程语言实现(译者:Go语言需要也应该拥抱这些巨大的代码遗产)。 在本节中,我们将构建一个简易的数据压缩程序,使用了一个G

  • 9.4.1.2.使用 sqlite3 Android 附带了一个命令行工具sqlite3,供我们访问数据库。 要验证数据库原型是否正确,你需要: 打开终端或者命令提示符。 输入adb shell,连接到仿真器或者真机。 切换到数据库所在的目录:cd/data/data/com.marakana.yamba/databases/。 通过sqlite3timeline.db打开数据库。 打开数据库之后

  • 问题内容: 我想通过CGO将Go字符串复制到char *中。 我可以这样做吗? 问题答案: 根据cgo文档,您需要使用C.CString函数将Go字符串转换为C字符串: 请注意,C.CString函数为您分配了内存,但不会释放它,因此您有责任通过如下调用来释放内存:

  • 问题内容: 我正试图从这样打电话: 该代码可以正常编译,但是会失败。我不知道为什么我无法得到。有人可以帮我吗? 问题答案: 是输入输出参数。进行呼叫时,必须将其设置为缓冲区()的大小。它的类型也是,所以在Go中使用。Windows 类型是指向的指针(具有)。参见来源。 还返回3个值: 存储返回并打印。完成此操作后,您会更早发现错误: 印刷品: 这意味着更多的数据比什么适合入缓冲区您传递可用- 或者

  • 我想通过 CGO 将 Go 字符串复制到字符 * 中。 我可以这样做吗?