20130428 go-sqliteの小さな問題を記録します

16904 ワード

beegoに基づいて簡単な解答システムを書いて、64ビットのコンパイラでよくコンパイルして、32ビットの機械の上で運行する時走ることができなくて、そこでまた32ビットをプログラミングしなければなりません.
32ビットのコンパイラを降りた後、工事を運んで、再コンパイルして、誰が1対の間違いを提示することを知っていて、すべてsqliteです.
 # command-line-arguments
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __divdi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __moddi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __divdi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __divdi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __divdi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __divdi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __moddi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __divdi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
    : __moddi3: not defined
    D:\GOPATH\pkg\windows_386/github.com/mattn/go-sqlite3.a(sqlite3_windows.)(.text)
....まだたくさんの間違いが出ていないので、ネットで探しました.
http://studygolang.com/topics/96このリンクはこのようにする必要があると言っていますが、なぜか、写真に加えて、間違いは次のようになります.
# command-line-arguments
W:\3rdpart\pkg\windows_386/github.com/gwenn/gosqlite.a(sqlite3.o)(.text): Interl
ockedCompareExchange: not defined
W:\3rdpart\pkg\windows_386/github.com/gwenn/gosqlite.a(sqlite3.o)(.text): Interl
ockedCompareExchange: not defined
W:\3rdpart\pkg\windows_386/github.com/gwenn/gosqlite.a(sqlite3.o)(.text): _local
time32: not defined
_localtime32(0): not defined
InterlockedCompareExchange(0): not defined
間違いは同じですがgithubを使っていますcommattngo-sqlite 3ライブラリ.
本当にできません.ネットユーザーは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はamd 64です.32ビットに切り替えるにはGOARCH=386を設定する必要がありますが、64ビットのコンパイラには8 gツールが付いていないため、コンパイル時にヒントが表示されます.
8 gが見つからない.32ビットのコンパイラをやり直しました