新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> VoiceXML, CCXML, OpenVXI
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML在语音技术中的应用 』 → 一步步实现OpenVXI (二) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 11866 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: 一步步实现OpenVXI (二) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     zhu_ruixian 帅哥哟,离线,有人找我吗?射手座1983-12-2
      
      
      威望:2
      等级:大二期末(Java考了96分!)
      文章:406
      积分:3471
      门派:W3CHINA.ORG
      注册:2006/3/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zhu_ruixian发送一个短消息 把zhu_ruixian加入好友 查看zhu_ruixian的个人资料 搜索zhu_ruixian在『 XML在语音技术中的应用 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看zhu_ruixian的博客楼主
    发贴心情 一步步实现OpenVXI (二)

    四.编译OpenVXI
    3.编译value
    在Visual Stdio.NET中的解决方案管理器中,右击myOpenVXI,然后选”添加”->新建项目。在对话框中选”Visual C++项目”->Win32->Win32项目,名称:value 位置:E:\work\myOpenVXI(这个应该是默认的),点击“确定”。右键点击swichar->属性->配置属性->常规->输出目录,把输出目录改为”..\bin”,点“确定“。然后把src\value下面的cpp文件和头文件拷到E:\work\myOpenVXI\value目录,然后加入工程。右键点击value工程,然后点生成。如果头文件找不到,修改头文件的路径如下:
    #include "..\include\*.h"
    如果有WIN32的条件编译,加上
    #ifndef WIN32
    #define WIN32
    #endif
    如果上面设置好了之后,编译仍然有问题,打开value工程,Value工程共有4个cpp文件,其中有两个文件为ValueNoSTL.cpp和ValueSTL.cpp。二者只能选其一。STL是标准模板库的缩写。我们选择ValueSTL.cpp,把ValueNoSTL.cpp从工程移除。然后再编译。我们就可以在E:\work\myOpenVXI\bin目录下找到生成的Value.dll和 value.lib了。
    打开类视图,你可以发现value实际上是一个VXIValue类,然后派生了13个子类。Value的功能是,定义了OpenVXI自己的数据类型, OpenVXI里面找不到基本的数据类型,全部OpenVX另外定义的。这样,value也编译好了。很简单!
    4.编译trd
       在Visual Stdio.NET中的解决方案管理器中,右击myOpenVXI,然后选”添加”->新建项目。在对话框中选”Visual C++项目”->Win32->Win32项目,名称:trd 位置:E:\work\myOpenVXI(这个应该是默认的),点击“确定”。右键点击trd->属性->配置属性->常规->输出目录,把输出目录改为”..\bin”,点“确定“。然后把src\trd下面的cpp文件和头文件拷到E:\work\myOpenVXI\value目录,然后加入工程。右键点击trd工程,然后点生成。
       有错误,和上面的处理方法一样,先修改头文件。然后是添加宏定义。处理完之后,编译会有一个,前面没有过的错误:
    e:\work\myOpenVXI\trd\trdUtil\SBtrdMutex.cpp(346): error C2065:
    “COMPANY_DOMAIN” : 未声明的标识符
    有必要解释一下,COMPANY_DOMAIN是OpenVXI的设计者留下让我们自己定义的。你可以定义为:#define  COMPANY_DOMAIN  L"公司的名称"
    我把它定义为如下: L“”是一个宏。
    #define  COMPANY_DOMAIN  L"my"
    然后,编译。仍然会报错。我们打开SBtrdPthreads.cpp文件,会在注释里面找到这样的内容:
    /*****************************************************************************
    * SBtrd API implementation
    * This provides the Linux implementation of the VXItrd API for basic
    * thread operations and locks.*/
    内容这个文件是OpenVXI的设计者为Linux写的,我们不需要。从工程移除即可。然后再编译,应该就能生成dll文件和相应的lib文件。这样trd的工作也完成了。打开类视图,你可以一目了然的浏览所有的类,仅从名称上就可以知道,这个模块是操作线程的。这两个工程没有用到*.def文件,这是因为他们用的是另外的方式导出函数,一种就是声明为:extern "C" __declspec(dllexport)  另一种就是声明为static的类型。也不难对吧!好继续。
    5. 编译log和 cache
    步骤和上面的一模一样。我就不罗嗦了。值得一提得是,SBlog.cpp中定义__THREADED宏,和在SBlogMapper.cpp中定义HAVE_XERCES宏。不定义,有可能编译通过,但是后面使用的时候会有问题。
    #ifndef HAVE_XERCES
    #define HAVE_XERCES
    #endif
    定义完HAVE_XERCES后编译,一个错误就是:
    e:\work\myOpenVXI\log\SBlogMapper.cpp(52): fatal error C1083: 无法打开包含文件:“util/PlatformUtils.hpp”: No such file or directory
    这就要用到了xerces,把xerces-c_2_6_0\include目录下的文件夹拷到..\Microsoft Visual Studio .NET\include文件夹,然后把
    #include <util/PlatformUtils.hpp>改成如下,其余类似。
    #include <xercesc/util/PlatformUtils.hpp>  
    还有一个就是,链接的时候出问题,右键点log工程->属性->链接器->输入->附加依赖项,输入“..\bin\trd.lib ..\bin\value.lib” xerces-c_2_6_0\lib目录下的文件也拷到trd.lib所在的目录下。附加依赖项中再输入:
    ..\bin\xerces-c_2D.lib ..\bin\xerces-depdom_2.lib ..\bin\xerces-depdom_2D.lib ..\bin\xerces-c_2.lib
    然后再次生成log工程。如果正常,也能在bin下看到log.dll和log.lib了。Log模块也做完了。
    Cache按上面的步骤来就是了。没什么好说的。

       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    为什么总是索取的人多,奉献的人少...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/22 21:15:00
     
     GoogleAdSense射手座1983-12-2
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML在语音技术中的应用 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 11:07:13

    本主题贴数1,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  一步步实现OpenVXI (二)(3878字) - zhu_ruixian,2006年7月22日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms