在Window下编译OpenH323

前言:
        本文只提供VC6.0的编译说明,如果想知道VC.Net下的编译过程请参看原文。
原文 :
         http://www.voxgratia.org/docs/pwlib_windows.html#msvc_headers

作者 :Craig Southeren
翻译  : Richard
原文更新日期:2004年11月16日


正文:

1.简介
  在OpenH323.org上所写的 在windows下编译PWLib的过程是非常简单的。而这篇文章提供了非常详细的用VC6.0编译PWLib的过程。(原文还提供了VS.net2003下的编译过程,因为没有用过VC.net,所以这里不提供说明)

2.先决条件
  如果你准备编译PWLib源代码你必须先有以下几个条件:
  a.VC6.0
  b.PWLib源代码。
  c.一个解压程序,比如说Winzip

3.下载和安装PWLib源代码
  你从[url=http://sourceforge.net/project/showfiles.php?group_id=80674]这里[/url]或者从CVS上下载,然后解压到install/PWLIB

4.编译前的准备
  在编译PWlib之前有许编译工作,一但你完全这些工作之后,再编译它进就不再需要了。

 4a.安装GNU bison
     GNU bison工具是编译PWLib所必须的.而GNU flex 并不是所有的人需要,除非你想重新编译"asnparser"工具(asnparser是用来改变OpenH323提供的ASN文件的).
     [url=http://www.voxgratia.org/bin/flexbison.zip]这里[/url]提供这两个工具的预编译版本。下面是工具的安装步骤:
     解压这2个预编译工具在"C:/"下(或者你选择的目录),这样就会创建"C:/Tools"这个目录,并在这个目录下有"FLEX.EXE"和"BISON.EXE"两个文件,并在"C:/TOOLS/SHARE"目录下有"BISON.SIMPLE"和"BISON.HAIRY".

重要提示:
       你可以安装bison到除C:/Tools以外的别的目录中,但是如果目录名中存在空格的话就会出现问题。除非你确信你能正确的做到所有的事情,否刚不要设置像"C:/Documents and Settings" 这样的目录名。
    。在VC6.0里面,从Tool菜单中选择Options,然后把C:/Tools中到可执行的目录下面。
      点击查看全图

    4b.检查VC头文件
   在VC6.0中对STL支持的头文件有许多缺陷。这些缺陷对那些依赖于全局静态变量的正确行为的程序是足以致命的。幸运的是,STL的作者为MSVC新发布的文件正确的解决了大多数的问题。
    PWLib所在的程序会检查机器中所安装的VC6.0的头文件,并升级他所需的。为了运行这个程序,你必须先找到installdir/MSVC_UPGRADE.BAT 并运行它。如果你的机器中没有找到这个,你可以从[url=http://www.voxgratia.org/releases/msvc6chk.zip]这里[/url]下载。然后用命令" msvc6chk upgrad"运行msvc6chk程序。
   然后,你将看到类似下面的屏幕:
   PWLIB File Upgrader v1.0
     Copyright (C) 2004 by Post Increment

     WARNING: the following file requires upgrading:
     C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/XTREE

     The files presented here are copyright ⌐ 1995-2000 by P.J. Plauger.
     All rights reserved. They are for use only in conjunction with a valid
     license for Microsoft Visual C++ V5.0 or V6.0. Microsoft Corporation is in
     no way involved with the production or release of these files. The files are
     offered on an `as is' basis. DINKUMWARE, LTD. AND P.J. PLAUGER MAKE NO
     REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THESE FILES, EITHER
     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
     DINKUMWARE, LTD. AND P.J. PLAUGER SHALL NOT BE LIABLE FOR ANY DAMAGES
     SUFFERED BY LICENSEE AS A RESULT OF USING THESE FILES.

     Upgrade file (y/n) ?

    按"Y"升级MSVC的头文件,接着下面的屏幕会出现:
  Upgrade file (y/n) ? y
    The following files have been upgraded
    C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/XTREE
    The previous version of the file has been renamed to
     C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/XTREE.backup

在升级的过程中,你将被问到,很多次是否升级,我们的建义是如果你没有什么很好的理由,请全部升级它们。
如果文件已经升级,你将会看到:
    PWLIB File Upgrader v1.0
   Copyright (C) 2004 by Post Increment
   C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/XTREE already upgraded
    Press any key to continue . . .

如果想知道更多的关于升级的信息,请看http://www.dinkumware.com/vc_fixes.html。

5.配制目录
从"Tool"菜单中选择"Option",然后按下面的要求设置目录:
。将insallDir/PWLib/include加入Include directory
。将installDir/PWlib/LIB加入Executable directory
。将installDir/PWlib/Lib加入Library directory

6.安装可选的文件。
   PWlib的创建过程中会自动寻找系统所安装的文件。在你开始建立PWLib工程前,你可以选择你以下的文件包进行安装。
   OpenSSL, OpenLDAP, expat, SDL, IPV6,MicroSoft Speech API, DNS resolver

7.编译
  不管你怎么设置的环境,有3个不同的工程你需要建立(不管是debug版或Release版)
   工程名                                  描述                      Debug版               Release版
  console                                    PWlib的基本静态库            ptlibsd.lib                    ptlibs.lib
   console Components               包含PWlib库                  ptclibd.lib                     ptclib.lib
   PTLib                                        包含PWlib库                  ptlidb.lib&ptlibd.dll       ptlib.lib&ptlib.dll

    静态库可以独立编译,但是要建立DLL需要先建立“MERGESYM"工具。

编译步骤:
1. 打开 installdir/PWLIB/PWLIB.DSW
2. 在Workspace中选择"File View"
3. 在Build toolbar中选择编译类型"Win32 Release" 或者"Win32 Debug"。
4. 右键点击"Console files" ,然后从菜单中选择"Build"建立ptlibs.lib。
  点击查看全图
5.接着会出现以下的显示(由于欠的环境配制会有所不同)
       --------------------Configuration: Console - Win32 Release--------------------
Configuring Build Options
PWLIB File Upgrader v1.0
Copyright (C) 2004 by Post Increment
C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/XTREE already upgraded
Located Open LDAP at D:/openldap/
Located Expat XML at D:/expat/
Located Speech API at D:/Program Files/Microsoft Speech SDK 5.1/
Searching C:/
Located DNS Resolver at C:/Program Files/Microsoft Visual Studio/VC98/
Searching D:/
Located Cyrus SASL at D:/cyrus-sasl-2.1.12/
Located Open SSL at D:/openssl-0.9.7/
Searching E:/
Byte Order set to PLITTLE_ENDIAN
Semaphore Support enabled
DNS Resolver enabled
Cyrus SASL enabled
Open LDAP enabled
Open SSL enabled
Expat XML enabled
Speech API enabled
IPv6 Support disabled
QoS Support disabled
Simple DirectMedia Layer disabled
Configuration completed.
Performing Custom Build Step on ../common/getdate.y
../common/getdate.y contains 8 shift/reduce conflicts and 18 reduce/reduce conflicts.
Compiling...
assert.cxx
Compiling...
collect.cxx
contain.cxx
ethsock.cxx

    ...lines deleted....

regexec.c
regfree.c
Generating Code...
Creating library...

ptlibd.lib - 0 error(s), 1 warning(s)

重要提示:
 1. 如果你安装了Miscrosof Platform SDK, 你也许会看到:
  Compiling...
assert.cxx
C:/Program Files/Microsoft SDK/include/winsock2.h(1218) : error C2061: syntax error : identifier 'DWORD_PTR'
C:/Program Files/Microsoft SDK/include/winsock2.h(1262) : error C2146: syntax error : missing ';' before identifier 'Key'
C:/Program Files/Microsoft SDK/include/winsock2.h(1262) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers
....

如果发生这种情况,你应该从"Tools"目录中选择"Option",然后在include directory中将Platform SDK加到
VC98 inlcude之前:
       点击查看全图

2。如果出现在下面情况:
    --------------------Configuration: Console - Win32 Release--------------------
Configuring Build Options
PWLIB File Upgrader v1.0
Copyright (C) 2004 by Post Increment
WARNING: the following file requires upgrading:
C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/XTREE
Please run "msvc6chk upgrade" to upgrade this file
Error executing c:/winnt/system32/cmd.exe.

ptlibs.lib - 1 error(s), 1 warning(s)

请重新阅读第4步

然后像上面那样,编译"Console componnets files"。
再编译"PTLib files "

如果都编译成功后,你就可以编译"PWlib files"了。

8。编译ASNParser
   如果你用的是PWlib1.7/Openh323 1.4以后的程序,或者是Janus patch 4, 你就可以跳过这一步
 (本文提供的下载地址是不用这一步的)
 如果是以前的版本你需要编译ASNParser,如果你没有编译它将会出现以下的错误:
  This program cannot be run in DOS mode.
Error executing c:/windows/system32/cmd.exe.

asnparser.exe - 1 error(s), 0 warning(s)

后记:
   到此,在VC6.0中编译PWlib就完了,原文还有一些更详细的信息。如果你只是编译PWlib,看此文应该把成功编译。但机器要好一点,我在Duron600, 128M的内存上跑了差不多半小时,才编译完。

  祝大家好运。


前言:
       本文只提供VC6.0的编译说明,如果想知道VC.Net下的编译过程请参看原文
原文:
       http://www.voxgratia.org/docs/openh323_windows.html
作者 :Craig Southeren
翻译  : Richard
原文更新日期:2004年11月16日

1.介绍
     这是一篇彻底讲解如何用MSVC6.0建立Openh323的文章。这个篇文章是上一篇文章的延续,所以你需要在上篇文章的基础才能建立Openh323的工程。
2.首要条件。
     如果要编译Openh323需要以下条件:
     1.   安装有MSVC6.0或VS.net2003(本文没有.net下编译的介绍)
        2.   一个以编译的PWlib的环境。
     3.   一个Openh323源代码的压缩包,
     4.   解压工具,类似于winzip。
3.下载和安装Openh323源代码。
      你可以从这里下载Openh323的源码。
4.配置文件夹
       在VC中"option"菜单中选择"tools"菜单,然后按照下面的要求加文件夹:
       1.把Installldir/OpenH323/Include加入头文件列表中。
    2.把Installdir/OpenH323/Lib加入执行文件列表中。
      3.把Installdir/OpenH323/Lib加到库文件列表中。
5.编译
        不管你怎么样配制的环境,有一许多不同的工程你需要编译,在OpenH323库中你有三种不同的方法进行编译:
        1.Debug版--------有全部的debug符号和跟踪信息。它提供了很多的信息,但是一般输出文件也是最大的。
        2.Release版--------没有debug符号,但是有全部跟踪信息,它的输出文件比Debug版小,但是它有完全的跟踪信息日志输出。
        3.No Trace版-------没有debug符号,也没有跟踪信息信息,它的输出文件最小,但是没有跟踪的日志输出。
       注:插件程序只能编译成Release版,并且它的调试信息不能在运行时使用。

工程名         描述 debug版生成的文件       Release版          No trace版
OpenH323Lib Openh323的静态库      open323sd.lib  open323s.lib      open323sn.lib
OpenH323dll            Openh323动态库     openh323d.lib         openh323.lib       openh323n.lib
g726                        语音编解码插入件           N/A                     g726codec.dll              N/A
gsm0610                 语音编解码插入件           N/A                      gsm0610.dll                N/A
ilbccodec                  语音编解码插入件           N/A                     ilbccodec.dll                 N/A
IMA_ADPCM             语音编解码插入件           N/A                     IMA_ADPCM.dll             N/A
Speex                      语音编解码插入件           N/A                       speexcodec.dll           N/A
LPC_10                    语音编解码插入件           N/A                       LPC_10.dll                 N/A
VoiceAgeG729         语音编解码插入件           N/A                        VoiceAgeG729.dll      N/A

  注:Openh323的静态库可以单独编译,而动态库需要从pwlib Release版中生成 MERGESYM工具的支持。语音编解码dll不需要MERGESYM的支持。

MSVC编译过程:
 1.打开installdir/OPENH323/OPENH323.DSW。
 2.选择Workspace中的"File View"
  3.在编译工具栏中选择编译类型"Win32 Release", "Win32 Debug" 或 "Win32 No Trace"
  4.右击"OpenH323Lib files"中菜单中选择"Build",编译OPenH323lib,你将会看到如下的输出:
--------------------Configuration: OpenH323Lib - Win32 Release--------------------
Configuring Build Options
Searching C:/
Searching D:/
Located ffmpeg RFC2190 AVCODEC Library at D:/rfc2190avcodec.dll/
Audio Software Codecs enabled
Video System enabled
ffmpeg RFC2190 AVCODEC Library enabled
Quicknet Internet xJACK cards enabled
Configuration completed.
Compiling...
precompile.cxx
Compiling...
channels.cxx
  ...lines deleted...
transmitter.cxx
vid_coder.cxx
Generating Code...
Creating library...

OpenH323s.lib - 0 error(s), 0 warning(s)
    5.右击"OpenH323dll files"选择"bulid"你,编译Openh323dll,你将会看到如下的输出:
    --------------------Configuration: OpenH323dll - Win32 Release--------------------
Merging exported library symbols
MergeSym version 1.4.0 on Windows 2000 by Equivalence
Compiling resources...
Compiling...
dllmain.cxx
Linking...
Creating library lib/OpenH323.lib and object lib/OpenH323.exp
Extracting debug symbols
REBASE: Total Size of mapping 0x00570000
REBASE: Range 0x30000000 -0x30570000

OpenH323.dll - 0 error(s), 0 warning(s)

在Openh323工程文件中,剩下的是编解码项目和例子程序,大家可以随意建立


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell中的条件判断和比较

1 shell 的$! ,$?, $$,$ $n $1 the first parameter,$2 the second... $# The number of command-line parameters. $0 The name of current program. $? Last command or functions return value. $$ The programs PID. $! …

matlab立体坐标定位_无惧密集建筑,小天才立体定位技术带来最强定位体验

如今,在可穿戴设备市场中,智能手表占据相当大一部分。而作为核心功能之一的定位,在智能手表中发挥着不可替代的作用,尤其是对于儿童电话手表而言。并且,在技术飞速进步,产品迭代加快的当前,儿童…

vue学习问题总结(一)

使用comopontent组件报错错误信息&#xff1a;vue.js:491 [Vue warn]: Unknown custom element: <todo-item> - did you register the component correctly? For recursive components, make sure to provide the "name" option.代码&#xff1a;<p>使用…

前端之 JavaScript 基础

JavaScript 概述 ECMAScript 和 JavaScript的关系 1996年11月&#xff0c;JavaScript 的创造者 Netscape(网景) 公司&#xff0c;决定将 JavaScript 提交给国际标准化组织 ECMA &#xff0c;希望这门语言能够成为国际标准。次年&#xff0c;ECMA发布262号标准文件&#xff08…

TCPMP0.72RC1的编译与移植以及自己另外做UI完整方法

我叫张挺&#xff0c;虽然开博&#xff0c;除了转了一篇黄色文章以外&#xff0c;技术文章从来没有写&#xff0c;所以呢&#xff0c;感到很不好意思&#xff01;于是决定还写一篇在网上也留点痕迹。我这里主要是介绍TCPMP的移植以及如何把这个鸟鸟整到自己的界面中来&#xff…

svga文件如何查看_电脑隐藏文件?如何查看隐藏文件 方法简单易学

大家好&#xff0c;我是小白一键重装软件的客服。如何查看隐藏文件呢&#xff1f;有时候不小心把文件夹勾选隐藏后文件就消失了&#xff0c;到底是怎么回事呢&#xff1f;其实这个是电脑上面一些设置开启了文件隐藏的功能哦&#xff0c;那么下面小白系统带你了解下如何查看隐藏…

jquery 的animate 的transform

$(function(){ var t 1000; $("#id").animate( {borderSpacing:180}, //180 指旋转度数 { step: function(now,fix){ $(this).css(-webkit-transform,rotate(nowdeg)); $(this).css(-ms-transform,rotate(nowdeg)); $(this).css(-moz-transform,rotate(nowdeg)); $(…

前端之 BOM 和 DOM

前言 到目前为止&#xff0c;我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法&#xff0c;并没有和浏览器有任何交互。也就是我们还不能制作一些我们经常看到的网页的一些交互&#xff0c;我们需要继续学习BOM和DOM相关知识。 JavaScript分为 ECMAScript&…

如何给FLV文件加字幕

如何给FLV文件加字幕关键字&#xff1a;FFMPEG AVS 字幕 本文只是收集工作中的一点经验和积累&#xff0c;如果你能从本文中得到收获&#xff0c;或者得到启发。那将是我最开心的事情。 本文面向的读者是对FFMPEG以及AVS有一定基础的&#xff0c;对电脑有一定基础的&#xff…

化工图纸中LISP_必备干货丨石油化工安装工程质量与成本控制研究

对于整个石油化工工程来说&#xff0c;石油化工的安装工程在其中是最重要并且最核心的一个环节&#xff0c;其对石油化工工程的质量有着决定性的作用。从客观的角度来说&#xff0c;如果石油化工安装工程在实际的施工过程中出现任何的问题&#xff0c;就会威胁到周边人群的生命…

[原创]windows server 2012 AD架构 试验 系列 – 15解决AD复制冲突

[原创]windows server 2012 AD架构 试验 系列 – 15解决AD复制冲突 这节我详细说下 ADDS使用stamp来作为解决冲突的依据 Stamp由三块组成 Version, time stamp , source DC GUID (发生对象修改行为的源DC的GUID) 一般来说冲突分为几下情况: 1-属性冲突 你可以用repadmin来查看版…

Python全局变量和局部变量

全局变量和局部变量 定义在函数内部的变量拥有一个局部作用域&#xff0c;定义在函数外的拥有全局作用域。   局部变量只能在其被声明的函数内部访问&#xff0c;而全局变量可以在整个程序范围内访问。调用函数时&#xff0c;所有在函数内声明的变量名称都将被加入到作用域中…

前端之 jQuery 入门

jQuery介绍 jQuery是一个轻量级的、兼容多浏览器的JavaScript库。jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互&#xff0c;能够极大地简化JavaScript编程。它的宗旨就是&#xff1a;“Write less, do more.“ jQuery的优势 一款轻…

python剑指offer替换空格_迷人的算法-剑指offer面试题5:替换空格

题目&#xff1a;请实现一个函数&#xff0c;把字符串中的每个空格替换成"%20"。例如&#xff0c;输入"We are happy."&#xff0c;则输出"We%20are%20happy."。此题看似简单&#xff0c;实则坑还是比较多的。替换字符的长度有变化&#xff0c;由…

音频视频解决方案:GStreamer/ffmpeg/ffdshow/directshow/vfw

音频视频编程相关&#xff1a;GStreamer/ffmpeg/directshow/vfw linux和window下几种流行的音频视频编程框架作一个总结&#xff0c;防止自己迷惘&#xff0c;免于晕头转向。 一、GStreamer GStreamer is a library that allows the construction of graphs of media-handlin…

Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup, setsid, , disown)...

Linux 将进程放入后台执行&#xff0c;解决网络&#xff0c;ssh断开导致进程结束&#xff08;nohup, setsid, &, disown&#xff09; 1、nohup 命令 我们知道&#xff0c;当用户注销&#xff08;logout&#xff09;或者网络断开时&#xff0c;终端会收到 HUP&#xff08;…

bzoj1927

1927: [Sdoi2010]星际竞速Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2556 Solved: 1580[Submit][Status][Discuss] Description 10年一度的银河系赛车大赛又要开始了。作为全银河最盛大的活动之一&#xff0c;夺得这个项目的冠军无疑是很多人的梦想&#xff0c;来自杰…

python until怎么用_python基础之从认识python到python的使用

python的历史&#xff1a;python的创始人是吉多范罗苏姆(Guido van Rossum)&#xff0c;人称“龟叔”&#xff0c;1989年圣诞节期间&#xff0c;Guido开始写Python语言的编译器。他希望这个叫做Python的语言能符合他的理想&#xff1a;创造一种C和shell之间&#xff0c;功能全面…

前端之同源策略 Jsonp 与 CORS

同源策略 同源策略&#xff08;Same origin policy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的&#xff0c;浏览器只是针对同…

vue新手入门——vue-cli搭建

首先说明&#xff0c;以下内容vue官网都有文档&#xff0c;如果觉得麻烦啰嗦&#xff0c;请移步至 安装-vue.js 。 准备工作&#xff1a; 1.下载并安装node环境&#xff0c;一般情况下安装好node之后&#xff0c;npm也会安装好。具体安装的话&#xff0c;百度大概能帮得上忙。 …