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库拷贝到生成的可执行文件夹下。
这个系列的内容也结束了,这是一个很小的练习,但是让我学到了很多。当然,文中有很多内容有解释错误或者理解不够深入,希望大家多多指正,促进学习,共同进步。谢谢大家!

浙公网安备 33010602011771号