Debug_Info跨平台动态库测试

    动态库的测试代码仅仅用一些简单的执行以下函数,并没有进行各种严格的测试。

    测试部分主要包括:编写测试代码,建立测试工程项目,拷贝头文件、动态库等

    一、编写测试代码

    测试代码写的相对较简单,主要是函数调用一遍,看看是否生效了。

    具体的代码为:   

#include <stdio.h>
#include
"debug_info.h"
//Temporary variables
#ifndef CAT
#define CAT 7
#endif
#ifndef MOD
#define MOD -1
#endif
//End definition of temporary variables

#define debug_init(path)\
debug_info_init(CAT,MOD,path)
#define debug(_cat,_code,_module,_format,...)\
debug_info_rec(_cat, _code, _module, __FILE__ , __FUNCTION__, __LINE__, _format,__VA_ARGS__)
#define debug_fini()\
debug_info_fini()


int main(){
int i,rs=1;
rs
=debug_init(NULL);
if(!rs){
for (i=0;i<1000;i++){
debug(
1,2400,3,"Print error: %s","Thread error");
}
printf(
"Success\n");
}
else
printf(
"Failed\n");
debug_fini();
return 0;
}

    测试代码中,定义了三个外部接口的宏,这样可以有效的减少宏参数的传递。尤其是可变参数的宏定义,是用__VA_ARGS__来传递的。

    二、建立测试工程

    1、创建文件夹

    创建src、include、build、lib文件夹

    2、创建CMakeLists.txt文件

    同样是两个,不解释了,直接代码。

    根目录的CMakeLists.txt文件内容:   

PROJECT(TEST)
ADD_SUBDIRECTORY(src)

    src目录下的CMakelists.txt 文件内容:

PROJECT(TEST)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}
/include)
SET(DEBUG_INFO_SOURCES ..
/include/debug_info.h ./test.c)


ADD_EXECUTABLE(test ${DEBUG_INFO_SOURCES})
TARGET_LINK_LIBRARIES(test ${CMAKE_SOURCE_DIR}
/lib/debug_info)

    三、Copy文件和库

    将生成的动态库的.lib文件拷贝到lib文件夹下;

    将debug_info.h文件拷贝到include文件夹下;

    将test.c拷贝到src文件夹下。

    四、生成工程

    在build文件夹下用cmake .. 就可以生成工程了。对工程进行编译就可以了。

    在运行时,会出问题的,因为他找不到动态库,还要将生成的.dll库拷贝到生成的可执行文件夹下。

    这个系列的内容也结束了,这是一个很小的练习,但是让我学到了很多。当然,文中有很多内容有解释错误或者理解不够深入,希望大家多多指正,促进学习,共同进步。谢谢大家!

posted @ 2011-04-04 17:38  uber_niello  阅读(339)  评论(0)    收藏  举报