TongBaseV1.2 内存数据引擎 SUSE Linux 静态链接库 新鲜出炉 附makefile

tongbase 2008-02-26 08:56:57
TongBaseV1.2 内存数据引擎 SUSE Linux 静态链接库 新鲜出炉 附makefile

编译方法:make -f makelib_linux

库文件libtb.a 下载见http://groups.google.com/group/tongbase 或 http://groups.csdn.net/tongbase

详见:http://blog.csdn.net/tongbase

################################################################################
###
### makefile for TB of Unix or Linux
### modified by kevin 2006-04-10 14:30
### 2008-2-25 kevin modified for make lib note:this makefile only make lib
################################################################################
### PLATFORM could be "AIX", "HPUX", "SUN", "COMPAQ", "SUSE", "WINDOWS"

PLATFORM = SUSE
#------------------------------ Paths Setting ---------------------------------#

_TB_SORUCE_PATH = .
_TB_OBJ_PATH = $(_TB_SORUCE_PATH)/obj
_TB_OUTPUT_PATH = $(_TB_SORUCE_PATH)

_TB_TEMP_PATH = $(_TB_SORUCE_PATH)
_TB_INC = $(_TB_SORUCE_PATH)/inc
_TB_PUB_INC = $(_TB_SORUCE_PATH)/pub
_TB_SRC = $(_TB_SORUCE_PATH)/src
_TB_DEPEND = -I$(_TB_INC) -I$(_TB_PUB_INC)

#------------------------------ Complier & Flags ------------------------------#
AIXCC = cc
HPUXCC = cc
SUNCC = cc
COMPAQCC = cc
SUSECC = cc
WINDOWSCC = gcc

AIXFLAGS = -qlanglvl=EXT
HPUXFLAGS = -Ae -D_POSIX_C_SOURCE=199506L -D_REENTRANT
SUNFLAGS = -xCC
COMPAQFLAGS = -verbose -assume noaligned_objects
SUSECCFLAGS =

COMPILER = $($(PLATFORM)CC) -g -DPOSIX
CCOPTIONS = -D__$(PLATFORM)__ -DCHECK $($(PLATFORM)FLAGS)
## 可选用参数 -DDIAGNOSTIC : 打开ASSERT指示开关.

#------------------------------ Library Linker --------------------------------#
AIXLINKER = ar
HPUXLINKER = ar
SUNLINKER = ar
COMPAQLINKER = ar
SUSELINKER = ar
WINDOWSLINKER = ar

LINKER = $($(PLATFORM)LINKER) -cr

#------------------------------- Libs -----------------------------------------#
AIXLIBS = -lpthread -L./ -lmyposix -lm
HPUXLIBS = -lxnet -lpthread -lrt -lm
SUNLIBS = -lxnet -lpthread -lposix4 -lsocket -lm
COMPAQLIBS = -lpthread -lxnet -lrt -lm
SUSELIBS = -lpthread

LIBS = $($(PLATFORM)LIBS)

#------------------------------- Souce code files -----------------------------#
_TB_All_C = $(wildcard $(_TB_SRC)/*.c)
_TB_All_CPP = $(wildcard $(_TB_SRC)/*.cpp)

#------------------------------- Objects --------------------------------------#
_TB_All_O = $(addprefix $(_TB_OBJ_PATH)/, $(subst .c,.o,$(notdir $(_TB_All_C))))
_TB_All_OPP = $(addprefix $(_TB_OBJ_PATH)/, $(subst .cpp,.o,$(notdir $(_TB_All_CPP))))

#------------------------------ Target ----------------------------------------#
# TB Static Libray File
SLIB_FILE = libtb.a



TARGET = $(_TB_OUTPUT_PATH)/$(SLIB_FILE)
#------------------------------ Macros ----------------------------------------#
# unix 下创建目录确实和windows不一样,所以增加了MKENV的处理。以及在cleanall下删除目录的功能。
all: mkenv $(TARGET)

.PHONY : mkenv
mkenv:
@echo 创建编译临时工作目录: $(_TB_TEMP_PATH)
@mkdir -p $(_TB_TEMP_PATH)
@echo 创建中间文件所在目录: $(_TB_OBJ_PATH)
@mkdir -p $(_TB_OBJ_PATH)
@echo 创建库文件所在目录: $(_TB_OUTPUT_PATH)
@mkdir -p $(_TB_OUTPUT_PATH)
@echo

$(TARGET):$(_TB_All_O)
@echo 编译完成!开始连接库文件: $@
@echo Linking $@ ......
$(LINKER) $(TARGET) $(_TB_All_O)
@echo Done!
@echo
@echo 连接完成!输出文件: $(TARGET)
@echo

$(_TB_OBJ_PATH)/%.o : $(_TB_SRC)/%.c
@echo 开始编译 $(_TB_SORUCE_PATH)/$ <
@echo Making $@ ......
$(COMPILER) $(CCOPTIONS) $(_TB_DEPEND) -c $ < -o $@
@echo Done!
@echo

.PHONY : clean
clean:
rm -f $(_TB_OBJ_PATH)/*.o $(TARGET)

.PHONY : cleanall
cleanall:
rm -f $(_TB_OBJ_PATH)/*.o $(TARGET)
rm -rf $(_TB_OBJ_PATH)
rm -rf $(_TB_TEMP_PATH)
rm -rf $(_TB_OUTPUT_PATH)
...全文
109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
不会,帮顶
tongbase 2008-02-27
  • 打赏
  • 举报
回复
首先我是个程序员,没有华丽或者夸大的宣传本领,

首先它的优点是在内存中存储数据和快速定位,就象一个数据库,可以嵌入到你的应用程序中,如果使用数据库,可能需要繁琐的维护,如表空间需要考虑,定期清除各种日志,即你运行的时候需要维护。

其次就是在内存中,运行速度快,当然你也可以将你的数据加载到内存中使用链表,共享内存,结合算法等等。但如果程序需要升级处理不同的数据了,就需要改变上诉的大部分内容,而使用tb可以,只要重新设置(不是大手术般的修改)下容量,字段,索引类型(哈希,顺序,BTREE应该可以满足大部分要求了吧?~)。

它现在的缺点:
1 还不能支持事务,还不能回退或是批量修改再提交,改了就是改了。
2 还不能支持并行,只能单任务处理。
3 还不能存盘,如果掉电的话,内存数据也就消失了。
4 不支持sql。

不过我想试试实现上诉内容,也希望有兴趣者一起进行设计,毕竟它还是中国的:)
iambic 2008-02-26
  • 打赏
  • 举报
回复
先支持原创。
再问下:有什么自己的特点吗?要不然我还是会用sqlite3。

24,856

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧