加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

20130428记录一下go-sqlite的小问题

发布时间:2020-12-12 20:18:21 所属栏目:百科 来源:网络整理
导读:基于beego写了一个简单的答题系统,用64位编译器编译好好的,可放到32位机器上运行的时候跑不起来,于是又得编程32位。 下了32位编译器后,把工程搬过去,重编译,谁知道提示一对错误,都是sqlite. # command-line-arguments D : GOPATHpkgwindows_386 /

基于beego写了一个简单的答题系统,用64位编译器编译好好的,可放到32位机器上运行的时候跑不起来,于是又得编程32位。

下了32位编译器后,把工程搬过去,重编译,谁知道提示一对错误,都是sqlite.

 # command-line-arguments D:GOPATHpkgwindows_386/github.commattngo-sqlite3a(sqlite3_windows.)(.text)  __divdi3 notdefined __moddi3)
.。。。还有很多错误没列出来,网上找了一番。

http://studygolang.com/topics/96 这个链接说需要这样做,不知为何,照加上,然后错误变为:

# command-line-arguments
W:3rdpartpkgwindows_386/ github.com/gwenn/gosqlite.a(sqlite3.o)(.text): Interl
ockedCompareExchange: not defined
github.com/gwenn/gosqlite.a(sqlite3.o)(.text): _local
time32: not defined
_localtime32(0): not defined
InterlockedCompareExchange(0): not defined
其中的错误是一样,只是我使用的是github.commattngo-sqlite3 库。

实在不得法,网友说 在sqlite.go中加上这个:https://groups.google.com/forum/#!msg/golang-china/EPekDegsHcc/uyhRoaBFNqkJ

#cgo LDFLAGS: -lgcc_s -lkernel32 -lmsvcr100
#cgo CFLAGS: -mno-stack-arg-probe#include"sqlite3.h"

就好了。果然,对cgo的编译规则不熟悉,只有先记录了。

go build 64位的默认GOARCH是 amd64,要切换成32位需要设置GOARCH=386,但是 由于64位的编译器没有带8g工具,所以编译的时候会提示:

找不到 8g. 所以用重下了32位编译器

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读