用msys1.0+mingw gcc4.7.1编译libodb(C++ ORM)

本文详细介绍了如何使用libodb对sqlite3数据库进行集成,包括编译与配置步骤,解决过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里主要使用的是libodb 对sqlite数据库的支持.

(1)下载编译sqlite3,当初编译go-sqlite3的时候下载过sqlite3,就直接拿过来用了.

start msys.bat
gcc -c sqlite3.c -I./inc/sqlite3/
ar crvs libsqlite3.a sqlite3.o
cp libsqlite3.a /d/private/library/lib
cp sqlite3.h /d/private/library/inc/sqlite3
cp sqlite3ext.h /d/private/library/inc/sqlite3
rm libsqlite3.a
rm sqlite3.o

(2)下载libodb到/d/wxwidgets/wxcode/

libodb-2.3.0.zip libodb的库

libodb-sqlite-2.3.0.zip libodb对Sqlite数据库的支持

(3)编译libodb的通用库.

start msys.bat
cd /d/wxwidgets/wxcode/libodb-2.3.0
./configure
make

顺利编译成功.

(4)编译libodb的sqlite支持

start msys.bat
cd /d/wxwidgets/wxcode/libodb-sqlite-2.3.0
./configure

提示libsqlite3没有找到,因为上面对sqlite3的编译后,对头文件与静态库的存放,没有按msys的标准(或POSIX标准或类unix标准)存放.执行./configure --includedir=/d/private/library/inc/sqlite3或./configure --includedir=/d/private/library/inc/sqlite3 --libdir=/d/private/library/lib 还是提示找不到sqlite3, 提示信息如下:

config.lt: creating libtoolchecking for libsqlite3... noconfigure: error: libsqlite3 is not found; consider using CPPFLAGS/LDFLAGS to specify its location

直接在msys中执行下面的命令,不再传递--includedir与--libdir参数,这时对sqlite3的检查顺利通过.

export CXXFLAGS=-I/d/private/library/inc/sqlite3
export LDFLAGS=-L/d/private/library/lib
./configure

提示sqlite3的一个特性没有开启,可能是在编译的时候开启这个特性的控制宏没有定义.或当前代码的版本不支持libodb需要的特性,暂时不理会了.

checking for libsqlite3... yes

configure: WARNING: libsqlite3 is built without sqlite3_unlock_notify support; multi-threaded support will be limited

checking for libodb... no

configure: error: libodb is not found; consider using --with-libodb=DIR

需要指定libodb的路径

./configure --with-libodb=/d/wxwidgets/wxcode/libodb-2.3.0

之后顺利通过configure, 并且make 直接编译成功.

checking for libsqlite3... yesconfigure: WARNING: libsqlite3 is built without sqlite3_unlock_notify support; multi-threaded support will be limitedchecking for libodb... yeschecking whether to use rpath... yes

转载于:https://my.oschina.net/u/126042/blog/183992

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值