Windows下PBC的安装可以在MinGW中手动编译安装,可自行百度谷歌,如果你用的编译器是VC 6.0话,今天介绍另一种简洁安装法。
1)下载PBC
选择decription为Microsoft Visual C++ conversion的版本
pbc-0.4.7-vc.zip,下载后解压到pbc-0.4.7-vc
PBC是依赖于GMP库的,可以在文件夹pbc-0.4.7-vcD\PBC-0.4.7-vc-c\PBCVC\self-compiled目录下发现,GMP的头文件gmp.h和链接库文件gmp.lib已经存在,因此在使用PBC库是GMP库中的函数就可以被调用。
2)编译错误的配置
在VC6.0中直接运行pbc-0.4.7-vcD\PBC-0.4.7-vc-c\PBCVC\目录下的工作区文件PBCVC.dsw,那么执行编译时可能会产生错误信息“Cannot open include file: ‘openssl/rand.h’: No such file or directory”,这是由于PBC库中缺少openssl头文件。此时需要从已经编译好的OpenSSL中,复制OpenSSL\include下的整个文件夹openssl到PBC库中pbc-0.4.7-vcD\PBC-0.4.7-vc-c\\include文件夹内,即可。如果你的电脑中没有安装OpenSSL库的话,对于一般的开发人员而言,在http://slproweb.com/products/Win32OpenSSL.html上下载已经编译好的OpenSSL库是省力省事的好办法,直接下载需要的版本安装即可。当然有特殊需求的读者可以手动编译OpenSSL库,具体方法参见http://blog.csdn.net/gf771115/article/details/17719847
3)链接警告的配置
当编译顺利通过,执行链接步骤时,可能会出现链接警告提示,“warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use/NODEFAULTLIB:library”,这是版本不兼容造成的,需要配置VC6.0的开发环境。在VC6.0中选择“工程/设置”,弹出“Project Settings”对话框,单击“连接”选项卡,在“分类”选项下拉菜单中选择“输入”选项,然后在“工程”选项中加入“nodefaultlib: LIBC”或者在“忽略库”中加入LIBC.lib,最后单击“确定”。
4)测试
在VC6.0中打开
pbc-0.4.7-vcD\PBC-0.4.7-vc-c\PBCVC\目录下的工作区文件PBCVC.dsw,在左侧工作区中PBVVC files 的二级目录Source Files下找到testpairing.c进行测试,程序编译运行后输出
最后将testpairing.c文件删除,因为这文件中含有main函数,将会与自己编写的main函数冲突,导致自己的程序无法找到正确的入口地址而出错。