windows 下编译 pwlib 和 openh323

2023-11-21 04:32
文章标签 编译 windows pwlib openh323

本文主要是介绍windows 下编译 pwlib 和 openh323,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 

        今天弄这东西弄了一天,真心无语!一点小的细节没注意,就会导致出错,所以还是记录下来,以后注意一点!

测试成功!不忽悠!

        注意利用openh323库 去做类似于电话之类终端的开发程序,需要pwlib为基础,所以先需要编译pwlib库!

        我使用的版本:http://sourceforge.net/projects/openh323/files/   openh323-v1_18_0-src.zip 和 pwlib-v1_10_1-src.zip,当然更高版本的也是可以的!

            ( 注意:windows下最好下载.zip的包~~~ )

         环境:win7;VC6.0

 

        > 下面简述编译pwlib的步骤:

            1:首先解压缩文件到C:下,即pwlib和openh323文件夹

            2:需要安装GNU bison 和 flex ( PWlib1.7之后的版本应该不需要,它是用来编译"asnparser"工具(asnparser

                  是用来改变OpenH323提供的ASN文件的). ),自己上网搜索下载即可!注意将文件(包括

                  bison.exe,flex.exe,share/bison.hairy, share/binson.simple... ) 放到C:\tools下( 建议!!!路径不可以有

                  空格 )  没有安装报错:Error executing c:/windows/system32/cmd.exe.

                  如图:

                         

            3:然后打开VC6.0,从Tool(工具)菜单中选择Options(选项),然后把C:/tools条目增加到中到可执行

                 (Executable files)的目录下面  ( 编译的时候会需要找这个工具 ) 

            4:检查VC头文件:在VC6.0中对STL支持的头文件有许多缺陷。这些缺陷对那些依赖于全局静态变量的正确

                  行为的程序是足以致命的。故STL的作者为MSVC新发布的文件正确的解决了大多数的问题。
                  此版本内,没有带msvc6_upgrade.bat这个文件,如果下载不到,那么下载一个高版本(在上面的地址)的

                  pwlib(最高版本好像改成ptlib),里面自带!也可以copy进来

                  直接执行这个批文件!

                   然后不管遇到什么叫你选择y/n,最好都选y,其他的没有试过!

                   直到我们看到:

                  

 

              5:下面需要做一个很重要的事:配置目录!为什么呢?那是为了程序编译连接以及运行的时候可以通过搜

                    索这些目录找到自己需要的头文件,lib之类!

                    因为我们将文件夹放在C:盘,那么:

                    从"Tool"(工具)菜单中选择"Option"(选项),然后按下面的要求设置目录:
                    将C:/PWLib/include    加入Include directory
                    将C:/PWlib/LIB            加入Executable directory
                    将C:/PWlib/Lib            加入Library directory

                    注意:在程序编译之前是没有lib文件夹的,lib这是编译之后才生成的!所以此时增加会提示没有此文件

                               夹,是否仍然增加,答案当然是咯,呵呵~

 

                6:下面进入编译环节!

                      我们知道安装pwlib的目的其实就是为openh323服务的,那么其实是编译连接后生成的一些库文件(lib)

                      或者一些dll为openh323服务!那么到底哪些lib和dll是需要生成的呢?

                      ptlibs.lib             ptclib.lib            ptlib.dll 都是必须的!

                      注意其实上面对应的release版本的时候生成的!如果是debug下编译,那么就是:

                      ptlibsd.lib             ptclibd.lib            ptlibd.dll 
                      

                      有一点很重要的是:openh323会有文件需要的是release的生成的lib,那么其实你可以在debug和

                       release下都编译一遍,呵呵~~~

》》》再次强调,如果不是release和debug都编译了,那么一定要注意,环境一定要统一,release就

                                   一直都是release,debug也是!不然后面报错说找不到什么ptclib.lib或者什么ptclibd.lib,那就

                                    不好了                


                       ‘小插曲:关于vc中在debug和release下编译大家应该都知道的,不过这是我还是提一下吧!’

                       ‘在空白处右击,找到Build(组建),然后你可以选择一个file,在后面选择是debug或者release,然后

                          编译即可!’

 

                         ====>进入正题:

                         右击使用vc打开PWLIB.DSW,注意对于上面的库,我们需要编译的有三个部分!

                          第一部分:编译Console files,你可以使用‘小插曲’中的Build栏,对文件Console files进行组建!

                          

                           注意:这时候可能会出现错误如下:

                                  c:/program files/microsoft sdks/windows/v7.0a/include/qossp.h(47) : error C2011: '_IN_ADDR_IPV4' : 'union' type redefinition
                                  c:/program files/microsoft sdks/windows/v7.0a/include/qossp.h(57) : error C2011: '_IN_ADDR_IPV6' : 'struct' type redefinition
                                  c:/program files/microsoft sdks/windows/v7.0a/include/qossp.h

                                  (68) : error C2011: '_RSVP_FILTERSPEC_V4' : 'struct' type redefinition

                           之类。。。。

                           这是因为vc6.0中的头文件和 microsoft sdks/windows/v7.0a/include/ 中很多定义冲突了!主要是因为

                           在前面configure的时候将后者也包含进来了,那么头文件中包含了2份!一样的定义!
                           解决:最简单就是删除microsoft sdks文件夹,哈哈~ 当然不太可取,看下面办法!

                                      为阻止configure尝试使用这些头文件,需要扫描过程中忽略microsoft sdks目录:通过将路径

                                      添加到PWLIB_CONFIGURE_EXCLUDE_DIRS环境变量即可!或者在comfigure命令行上使

                                     用—exclude-dir参数也可以指定忽略目录(或包含带—exclude-env参数的目录的环境变量

                            然后应该就可以顺利执行编译了!

                       

                           接下来还有编译:Console componnets files和PTLib files ,步骤与上面一样!

 

                           至此:编译pwlib结束!

 

            > 下面简述编译open323步骤:

                步骤会简单一些:

                1:配置目录:

                      在VC中"option"菜单中选择"tools"菜单:

                      C:/OpenH323/Include       加入include(头文件)列表中。
                      C:/OpenH323/Lib              加入Executable(执行文件)列表中。
                      C:/OpenH323/Lib              加到Library(库文件)列表中。

                2:编译:

                      右击使用vc打开OPENH323.DSW

                      需要编译的有两个文件:

                      OpenH323Lib files 和 OpenH323dll files,编译步骤同上!只有上面编译没有错,此处应该不会出错!

                      注意,要求pwlib的release版本!  
           

                步骤就这么多,可能还有其他一些问题没有遇到,每个人的机器不一样,所以可能出错不一样~仅此借鉴~

                呵呵~

                 晚安,睡觉~(01:27:29  2013年9月16日

             

                 补充:最后的最后还要注意将所有的dll文件copy到sysytem32中,那么exe在运行的时候才可以找到!否则

                            提示没有此dll错误~

                     

 参考:http://www.voxgratia.org/docs/pwlib_windows.html  和

            http://www.voxgratia.org/docs/openh323_windows.html#dirs

这篇关于windows 下编译 pwlib 和 openh323的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/399841

相关文章

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Windows如何添加右键新建菜单

Windows如何添加右键新建菜单 文章目录 Windows如何添加右键新建菜单实验环境缘起以新建`.md`文件为例第一步第二步第三步 总结 实验环境 Windows7 缘起 因为我习惯用 Markdown 格式写文本,每次新建一个.txt后都要手动修改为.md,真的麻烦。如何在右键新建菜单中添加.md选项呢? 网上有很多方法,这些方法我都尝试了,要么太麻烦,要么不凑效

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码