分类: 数据库开发技术
2015-04-07 00:25:50
在VxWorks应用程序中采用传统常规的内存数据库需要如下的链接:
-lmcolib -lmcovtmem -lmcomem -lmcoseri -lmcosvxn
-lmcomconv -lmcotmursiw -lmcolib -lmcouwrt
在VxWorks应用程序中采用共享内存和混合版数据库需要如下链接:
一个Vxworks应用使用eXtremeDB混合版建立共享内存数据库,需要如下的链接:以上两个示例都使用的是MURSIW的事务管理器。如果采用MVCC事务管理则需要改为如下链接:
-lmcolib -lmcovtmem -lmcomem -lmcoseri -lmcosvxn(请参阅以上不同需求的示例项目应用于不同的应用中)
为便于参考,以下列表标明了库之间的依赖性和在链接表里如何指定:
Source code configurations
源代码许可可以针对用户不同的应用功能对数据库重新编译,这样将会减少运行时库的足迹 (执行路径) 和应用程序的程序段和数据段的大小。通过在include/mcotarget.h文件中通过#define指定对索引的支持进行编译。
/* support for indexes */
#define MCO_CFG_HASH_SUPPORT
#define
MCO_CFG_EVENTS_SUPPORTED
#define MCO_CFG_SAVELOAD_SUPPORTED
如果你决定重新编译运行库或者需要指定命令行参数(如优化选项等),最好是通过命令行选择合适的选项编译eXtremeDB子系统。也可以手动编辑生成子系统makefile文件“/include/header.mak”。有时也有必要在header.mak做一些改变。例如,你需要重新建立共同的事件(工具)(如cp,rm, mkdir,等)或者设置共同的编译标记(-c,-o,-fPIC等),然而,通常不需要在makefile里做任何改变。
如下命令行选项是可用的:
make
[x64=on|off] [TARGET_PLATFORM=
[HOST_PLATFORM=
[SHOW_BUILD_LOG=on] [TARGET_OS_HINT=
TARGET_PLATFORM= |
The
For TARGET_PLATFORM=mipsel-linux
The
gcc mipsel-linux-gcc ... -c file.c -o file.o
g++
mipsel-linux-g++
|
[HOST_PLATFORM= |
The |
TARGET_FLAGS= |
Additional
TARGET_FLAGS=-m5307
mipsel-linux-gcc -m5307 ... -c file.c -o file.o
To pass
TARGET_FLAGS="-mcpu=603e
|
HOST_FLAGS= |
Additional
|
TARGET_OS_HINT |
This
uCLinux,
For
TARGET_OS_HINT=uCLinux
|
SHOW_BUILD_LOG=on |
Displays
|
DEBUG=on |
Debug
|
x64=on |
Change
|
OPTIMIZE=size
|
Speed |
MCO_LIB_DYNAMIC=disabled |
Enable/disable
|
MCO_LIB_STATIC=disabled |
Enable/disable
|
STATIC=on |
Force
|
MCO_USE_ARCH_SFX=on |
Allows
MCO_USE_ARCH_SFX=on
The
target/bin-mips
|
Platform-specific |
Linux:
Supported
CYGWIN_NT-5.1: -mno-cygwin mode, supported target os hints: OS21
QNX:
HOST_PLATFORM
CC =
Sun
HOST_PLATFORM=cc
|
|
|
在你的Vxworks版本的eXtremeDB包里,在目录target/bin下,包含了已经建立好的eXtremeDB运行时库。
这个目录结构反映了目标平台和编译器的使用。建立SDK 示例之前,你需要安装WindRiver Workbench IDE和WindRiver环境。请参考合适的VxWorks文档。
你的包包含Workbench工程文件,你能将它加载到IDE里。这些工程文件被指定在如下的目录里:
samples/core (core samples)
samples/sql (eXtremeSQL samples)
samples/ha (High Availability
Edition samples)
samples/tl (Transaction Logging
Addition samples)
为了重新编译运行时库,请使用在/target/bin目录里的workbench工程文件。
请注意,你的包不包含编译SDK例子和运行时库的命令行工具。如果你需要将eXtremeDB建立到你的命令行应用程序构建系统,请联系McObject.
此外,你会发现一个安装在顶层安装目录里的make.bat批处理文件。使用这个文件你可以不使用IDE工具而编译eXtremeDB SDK组件。请确保你已经设置好了你的开发环境。如下有几个参数可供make.bat编译。
make.bat |
Builds |
make.bat |
Builds |
make.bat |
Builds |
BUILD_PLT |
Identifies
WIN32 |
BUILD_TYPE |
Identifies
VC60, |
REBUILD |
Indicates
REBUILD=on/off |
SHOW_BUILD_LOG |
Displays |
该软件包包含预先生成的所有SDK样本模式文件。为了重新生成SDK 示例实施文件。使用/samples目录下的comple-schema.sh文件。
也可以使用命令行编译。如:
# cd
eXtremeDB
# /usr/ghs/multi/linux86/gbuild
“
通常eXtremeDB在关闭数据库的时会删除所有这些文件。但是如果程序运行失败它将没有机会(被)删除。因此(在这种情况下)开发人员必须采取其他方法来清楚这些文件。
可以通过设置,导出环境变量EXTREMEDB_DIR的值来设置Lock文件生成的路径,从而代替默认的用户目录。例如,在下面的例子中,在命令行中,通过设置,导出环境变量EXTREMEDB_DIR的值,更改samples的应用程序Lock文件生成路径。
export EXTREMEDB_DIR=/tmp ./sample”
保持此目录路径只为在程序执行期间或者
上面的命令使Lock文件生成目录/tmp在samples运行期间有效。或者下面的命令
“export EXTREMEDB_DIR=/tmp”
./sample”
保持此目录路径可用直到下次运行“export”或者“unset”命令。