库配置
Unix-Linux
标准的 Unix 或 Linux 64 位或 32 位平台
一些库包含对其他库中函数的引用,从而产生相互依赖关系。例如,核心库 libmcolib.a
引用了事务管理器库(libmcomursiw.a
或 libmcomvcc.a
),而事务管理器库又回指到 libmcolib.a
。某些 C/C++编译器(特别是 gcc 和 Diab)对链接列表中列举的库的顺序很敏感。对于这些编译器,通过以特定顺序指定库来解决这些相互依赖关系,并且有必要在链接列表中多次指定同一个库,如下例所示(请注意,各个库的描述可以在“包内容”主题中查看):
使用 MURSIW 和快照保存/加载功能的内存数据库应用程序
一个使用常规内存中的数据库、MURSIW 事务管理器、使用 C 运行时和基于 POSIX 的同步原语,并使用快照函数 mco_db_save()
和 mco_db_load()
的应用程序将具有以下链接列表:
-lmcolib -lmcovtmem -lmcoseri -lmcoslnxp -lmcomconv -lmcotmursiw -lmcolib -lmcouwrt
-lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
使用 MVCC 和快照保存/加载功能的持久数据库应用程序
一个使用持久类、MVCC 事务管理器、C 运行时和基于 POSIX 的同步原语,并使用 mco_db_save()
和/或 mco_db_load()
函数的应用程序将具有以下链表:
-lmcolib -lmcovtdsk -lmcoseri -lmcoslnxp -lmcomconv -lmcotmvcc -lmcolib -lmcofu98 -lmcouwrt
-lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
一个使用 MVCC 的持久共享内存数据库应用程序
一个使用具有持久类的 IPC 共享内存的应用程序将具有以下链表:
-lmcolib -lmcovtdsk -lmcoslnx -lmcomipc -lmcotmvcc -lmcolib -lmcofu98 -lmcouwrt
-lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
使用调试库的应用程序
在开发周期中,同一个持久共享内存数据库应用程序将与以下“调试”库进行链接:
--lmcolib_debug -lmcovtdsk_debug -lmcoslnx_debug -lmcomipc_debug -lmcotmvcc_debug
-lmcolib_debug -lmcofu98_debug -lmcouwrt_debug -lmcotrace_debug -lmcosallatches_debug
-lmcosalatomic_debug -lmcosalsmp -lmcosaltimer_debug -lmcosalmem_debug -lmcocryptaes_debug
Windows
Windows 7 及以上
以下是一些要包含在链接列表中的库的示例(在 Visual Studio 中,这些在“属性 -> 链接器 -> 输入”对话框中指定),用于具有特定功能的 Windows 应用程序(请注意,各个库的描述可在包内容页面中查看):
使用 MURSIW 的内存数据库应用程序
该 Windows 应用程序不使用持久类和 MURSIW 事务管理器,将与以下库链接:
mcouwrt.lib mcolib.lib mcovtmem.lib mcoseri.lib mcomconv.lib mcotmursiw.lib
mcosw32n.lib mcotrace.lib mcosalmem.lib mcosallatches.lib mcosalatomic.lib
mcosalsmp.lib mcosaltimer.lib mcocryptaes.lib
使用 MURSIW 的内存数据库应用程序
该 Windows 应用程序不使用持久类和 MURSIW 事务管理器,将与以下库链接:
mcouwrt.lib mcolib.lib mcovtmem.lib lib mcoseri.lib mcomw32.lib mcotmursiw.lib
mcosw32n.lib mcotrace.lib mcosalmem.lib mcosallatches.lib mcosalatomic.lib
mcosalsmp.lib mcosaltimer.lib mcocryptaes.lib
使用 MURSIW 的事务日志应用程序
Windows 事务日志应用程序不使用持久类,并且使用 MURSIW 事务管理器将与以下库链接:
mcouwrt.lib mcolib.lib mcovtmem.lib mcoseri.lib mcomconv.lib mcotmursiw.lib
mcosw32n.lib mcotrace.lib mcolog.lib mcosalmem.lib mcosallatches.lib
mcosalatomic.lib mcosalsmp.lib mcosaltimer.lib mcocryptaes.lib
使用 MVCC 的群集持久数据库应用程序
Windows 群集应用程序使用持久类和 MVCC 事务管理器将与以下库链接:
ws2_32.lib mcouwrt.lib mcolib.lib lib mcovtdsk.lib mcoseri.lib mcomconv.lib
mcosw32n.lib mcotrace.lib mcocltcp.lib mcocluster.lib mcotmvcc.lib
mcosalmem.lib mcosallatches.lib mcosalatomic.lib mcosalsmp.lib mconet.lib
mcosaltimer.lib mcocryptaes.lib
示例
SDK 示例项目提供了更多关于针对不同的 SmartEDB 功能应包含哪些库的示例。
VxWorks
Wind River VxWorks OS
一些库包含对其他库中函数的引用,这会产生相互依赖关系。VxWorks 链接器要求通过以特定顺序指定这些库来解决这些相互依赖关系。为便于参考,以下列表指出了哪些库存在相互依赖关系以及如何在链接列表中指定它们(请注意,各个库的描述可在“包内容”主题中查看):
-lmcolib ... -lmcotmursiw -lmcolib ...
-lmcolib ... -lmcotmvcc -lmcolib ...
-lmcolib ... -lmcotexcl -lmcolib ...
... -lmcosql -lmcorsql ...
... -lmcohv -lmcoews -lmcouda ...
... -lmcohv_sql -lmcoews -lmcouda -lmcosql -lmcoseridsk
... -lmcohv_sql -lmcoews -lmcouda -lmcosql -lmcoseri
简单的内存应用程序
一个使用传统模式的纯内存数据库的简单 VxWorks 应用程序将具有以下链表:
-lmcolib -lmcovtmem -lmcoseri -lmcosvxn -lmcomconv -lmcotmursiw -lmcolib -lmcouwrt
-lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
持久的共享内存数据库应用程序
一个使用持久数据库以及用于数据库元数据和缓存的共享内存的 VxWorks 应用程序将具有以下链表:
-lmcolib -lmcovtdsk -lmcoseri -lmcosvxshm -lmcompsx -lmcotmursiw -lmcolib -lmcofuni -lmcouwrt
-lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
MVCC 应用程序
上述两个示例均使用 MURSIW 事务管理器。若要改为与 MVCC 事务管理器链接,请使用以下链接列表:
-lmcolib -lmcovtmem -lmcoseri -lmcosvxn -lmcomconv -lmcotmvcc -lmcolib -lmcouwrt
-lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes