交叉编译go-sqlite3出现”undefined: SQLiteConn”

在windows下交叉编译go-sqlite3,如果只更改了GOARCH环境变量,编译时会出现:
undefined: SQLiteConn错误。

查了一下,是需要使能cgo,于是更改环境:

CGO_ENABLED=”0”

CGO_ENABLED=”1”

重新编译,出现下面错误:

gcc: error: unrecognized command line option ‘-marm’

使用go env查看环境变量,发现:

CC=”gcc”

CC=”arm-linux-gnueabihf-gcc”

重新编译后即可。

约束是在数据库表中的某列字段上强制执行的规则,用以限制插入表中的数据类型,确保数据库中的数据的准确性和可靠性约束分为列级约束和表级约束,前者适用于列,后者应用于整个表。 什么是约束 NOT NULL 约束 DEFAULT约束 UNIQUE约束 PRIMARY KEY约束 CHECK约束 Sqlite 3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite 3 的研究列出来,以备忘记。 这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何 windows 的东西,只使用标准 C 或标准C++。但 一、约束 Const ra int s 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应该翻译成约束更贴切一点。 那么什么是约束呢? 我们在数据库 sqlite 3 插入数据的时候。返回 SQLITE _ CONST RA INT 原因是:数据库的表的名字是纯数字。 大改这个原因太诡异了。创建的时候能够创建成功。插入数据的时候就失败,由于表名是纯数字。 附上错误的汉语解析 #define SQLITE _OK 0 /* 成功 | Successful result */ /* 错误码開始 */ #defin... 1.panic: Binary was compiled with 'CGO_ENABLED=0', go- sqlite 3 requires cgo to work. This is a stub [recovered] panic: Binary was compiled with 'CGO_ENABLED=0', go- sqlite 3 requires cgo to work. This is a stub 交叉编译 的文件放到arm架构linux系统的平台上运行, 发现无法进行 转自:http://blog.sina.com.cn/s/blog_5f2e119b0101ibwn.html SQLite 3 (http://www. sqlite .org)是一个非常强大的小型开源数据库软件,特别嵌入到一些软件中存储数据,当然,移植到嵌入式系统上也是非常有必要的。众所周知的Symbian,Android, IOS这几大移动平台都是使用的 sqlite 作数据存储,使用 SQLite 的厂商包括Adobe, Airbus, Apple, Dropbox, Mozilla, GE, Google, sqlite 3中的约束如下: CREATE TABLE CheckTable (rowId int eger primary key autoincrement, name text not null, address text default "China",  userId text unique, age int eger check(age >= 0)); sqlite 3中的约束一 #define SQLITE _OK 0 /* 成功 | Successful result */ /* 错误码开始 */ #define SQLITE _ERROR 1 /* SQL错误 或 丢失数据库 | SQL error or missing database */ #define SQLITE _ INT ERNAL 2 /* SQL...