作者:朱金灿
来源:https://blog.csdn.net/clever101
- 准备材料。
编译环境:win10企业版
编译工具:vs2013、mingw32。
源码:
pthread库的头文件(config.h、implement.h、pthread.h、sched.h、semaphore.h)
boost_1_63_0
dokany-0.7.4
ceph-dokan-0.94.1
这三者的关系是这样的:编译ceph-dokan-0.94.1需要dokany-0.7.4的头文件和库文件,需要boost_1_63_0的头文件(网上的资料说需要编译boost_1_63_0,实际上并不需要)。
- 编译dokany-0.7.4
解压dokany-0.7.4,使用vs2013打开dokany-0.7.4文件夹下的dokan.sln,编译dokan工程,生成dokan.lib和dokan.dll。
将生成的dokan.lib拷贝到ceph-dokan-0.94.1\dokan目录下,
使用dos命名直接切换到ceph-dokan-0.94.1目录下,运行编译命令:
mingw32-make ceph-dokan.exe
出现编译错误:
修改ceph-dokan-0.94.1目录下的Makefile:
修改ceph-dokan-0.94.1\dokan\ceph_dokan.c,增加一句代码:
#include "pthread.h"
修改ceph-dokan-0.94.1\common\ceph-mingw-type.h,修改代码:
#define _FAKE_TIME_H_SOURCED 1
#define __need_struct_timespec 1
//#include <parts/time.h> // 注释这句
#include "pthread.h" // 增加这句
#undef __need_struct_timespec
#define HAVE_STRUCT_TIMESPEC 1
然后运行编译命令:
mingw32-make ceph-dokan.exe
可以编译的源码文件下载: