ptlib编译

linux:

 


part A: Building PTLib
------------------------
1. extract ptlib.zip to /root/

2, cd /root/ptlib/

3, ./configure --disable-sasl --disable-sdl --disable-odbc(如果要用到ODBC连接数据库需要加这个选项)

4, vi ./make/ptbuildopts.mak, move cursoe to line 22

5, remove a library:

       ENDLDLIBS += .........         //  remove -lz

6, make optnoshared && make install

Result: 

ls ./lib_linux_x86/

libpt_s.a   //these is a library file we expected.

=====================================================

 

 

 

 

windows:

 

 

在Windows Server 2008下编译PTLib2.6.1
    PTLib是一个很有用的库,目前最新的版本是2.6.1,它是用于构建OPAL和OpenH323的基础类库。
在Windows Server2008 sp1下编译PTLib2.6.1的过程中,遇到了一些问题,当然最后都顺利解决了,
下面是编译的步骤和对遇到问题的解决方法。

0.编译环境:Platform:Windows Server 2008 sp1;Compiler:Visual Studio 2005

1.首先按照OPAL官方网站上给出的编译向导(http://www.opalvoip.org/wiki/index.php?n=Main.BuildingPTLib),
安装上面写所列出的必须的软件。

2.按照编译向导,在工程的目录中加入相应的include,lib文件夹。

3.首先编译PTLib Static库,在Debug模式下,生成ptlibsd.lib,在Release模式下生成ptlibs.lib

4.接下来编译MergeSym工具,编译完成后,会在bin目录下生成MergeSym.exe文件。将该文件夹(Debug或Release)加入
工程的可执行文件目录中,否则在编译PTLib DLL时会报如下的错误:'MergeSym' is not recognized as an internal
or external command, operable program or batch file.

5.现在就可以编译PTLib DLL了。在Debug模式下生成PTLibd.dll,在Release模式下生成PTLib.dll。编译完DLL后,需
要的库基本上就完成了。

6.可以通过两个自带的程序来测试PTLib生成的静态库和动态库是否成功。工程中有两个程序Hello World DLL和Hello
World Static,分别用来测试PTLib生成的动态库和静态库。

7.在编译时,如果出现说找不到c:/Program Files/Microsoft SDKs/Windows/v5.0/Lib/里面某个文件时,只需要在其
他目录中找到相应的文件,拷贝过来即可。

8.在pssl.cxx中有几个函数:PSSLCertificate::PSSLCertificate(const BYTE * certData, PINDEX certSize)
{
#if P_SSL_USE_CONST
certificate = d2i_X509(NULL, const_cast(&certData), certSize);
#else
certificate = d2i_X509(NULL, (unsigned char **)&certData, certSize);
#endif
}


PSSLCertificate::PSSLCertificate(const PBYTEArray & certData)
{
const BYTE * certPtr = certData;
#if P_SSL_USE_CONST
certificate = d2i_X509(NULL, const_cast(&certPtr), certData.GetSize());
#else
certificate = d2i_X509(NULL, (unsigned char **)&certPtr, certData.GetSize());
#endif
}

在编译时发现函数参数的转换有问题,原函数第二个参数是一个非const指针,而传进来的却是const指针,因此用const_cast
去掉了指针的const属性,编译成功。

9.在安装PTLib编译时所需要的那些工具或库时,最好都装在C盘根目录下。在编译时,PTLib的程序首先会调用一个configure
程序来查找这些工具和库,然后把查找到的目录写入到include目录中的ptbuildopts.h文件中,然后源文件包含了该头文件。

10.另外,对于在编译PTLib时,有些源文件会因为文件格式不对而报错。这时只要将该文件另存为编码为Unicode UTF-8或者
简体中文(GB2312)即可。

对于PTLib编译和使用的问题,以后会陆续更新。
 

你可能感兴趣的:(linux工具安装)