NSPR在Windows上编译及使用

来源:互联网 发布:php 框架 编辑:程序博客网 时间:2024/04/27 17:03

工作上需要做windows和linux的C++跨平台,虽说C++在两个系统下是完美支持的但之间还是有点区别,特别是如果要使用到系统资源的时候更是,这时那就不可避免的开始一大堆宏定义,这个我肯定写不好而且浪费时间!于是想找一个平台抽象库,屏蔽两个操作系统之间的差异,当然只是包含最基本的如文件、内存、线程、网络等等。最开始的时候也考虑到用boost、qt之类的但考虑到有点大而且公司不一定愿意添加这个进去,多半会增加完全不必要的工作量,然后也搜索到其他一些简单的跨平台库,但都很专一仅仅是涉及到一个方面,也不能保证稳定性。所以最终朋友介绍NSPR给我!

Netscape Portable Runtime (NSPR)  提供一套面向系统级的与平台无关的 API  和类似于libc的函数. 这些API被用在Mozilla客户端, Red Hat公司、Sun公司的服务应用程序以及其他公司的一些软件中。

编译

On Windows, the NSPR build system needs GNU make and a Unix command-line utility suite such as MKS Toolkit, Cygwin, and MSYS. The easiest way to get these tools is to install the MozillaBuild package.在windows上编译NSPR需要GNU和Unix环境套件如MKS、Cygwin、MSYS。不过最好的方式是下载MozillaBuild开发包(下载地址,详细的开发包说明点这里:)。

NSPR工程下载地址:https://ftp.mozilla.org/pub/mozilla.org/nspr/,包含说明文档和源码。

1、解压NSPR到某目录(建议根目录下),安装MozillaBuild开发包;

2、打开MozillaBuild开发包安装目录,发现里面有很多start-msvcXX.bat(XX代表VS编译器的版本号,注意VS是32 or 64位!),然后用cd切换到NSPR的解压目录;

3、新建一个目录用来编译、链接,具体方式可参考官方的指导

 # check out the source tree from CVS cvs -q -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r NSPR_4_8_RTM mozilla/nsprpub # create a build directory mkdir target.debug cd target.debug # run the configure script ../mozilla/nsprpub/configure [optional configure options] # build the libraries gmake # build the test programs cd pr/tests gmake
说明:#号后是注释,cvs这条指令是下载(由于已经下载可以跳过),其他的应该能看懂吧?下面说说configure几个重要选项
1、--disable-debug --enable-optimize:Specify these two options to generate an optimized (release) build.These two options can actually be used independently, but it's not recommended. configure默认是生成debug的,如果需要release则需要加上这两个选项。
2、更多的选项说明看这里:https://developer.mozilla.org/en-US/docs/NSPR_build_instructions。
3、需要说明的是,上述链接里提到的32、64位环境是指vs是32 or 64,不是指windows操作系统是多少位。

使用

1、在上面提到“新建一个目录用来编译、链接”,等链接完成之后会发现目录下多了一个“disk”的新目录,下面又包含bin、include、lib三个子目录,这就是开发和运行所需要的文件。在lib目录下_s结尾的是静态lib。
2、使用时,先包含头文件和.lib,运行时拷贝dll。(我目前还不知道这三个dll的关系:(,后面我搞清楚了会写在博客里的 )。

补充

我在使用MozillaBuild开发包之前,尝试使用过mingw、cygmin,最终都失败了!当然现在明白了mingw、msys的联系,参见这里。


参考资料:
1、NSPR
2、NSPR build instructions
3、/pub/mozilla.org/nspr
4、Windows build prerequisites
5、MinGW + MSYS 配置 Windows 下的编译终端