在OS X 10.9上编译PJSUA

时间:2013-11-28 20:05:57

标签: python sip osx-mavericks pjsip

首次使用stackoverflow,请告诉我,如果我做错了什么!

我想使用PJSIP 2.1的python模块(包装器)。我试过这样:

  1. 阅读documentation
  2. 相应地检查要求。这是我的设置:
    • OS X 10.9(小牛队)
    • GNU Make 3.81
    • binutils 2.23.2(可能是通过Macports ..实际上并不确定)
    • Apple LLVM 5.0
  3. 下载v2.1:pjproject-2.1.tar.bz2并将其解压缩到我的家庭目录。
  4. cd进入pjproject-2.1并在终端中运行:./configure && make dep && make
  5. 说到这一行(我在制作期间,我相信):gcc -o ../bin/pjmedia-test-i386-apple-darwin13.0.0,以下错误会直接抛到我的脸上:/

    Undefined symbols for architecture x86_64:
    "_aes_icm_advance_ismacryp", referenced from:
    _aes_icm_encrypt_ismacryp in libsrtp-i386-apple-darwin13.0.0.a(aes_icm.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [../bin/pjmedia-test-i386-apple-darwin13.0.0] Error 1
    make[1]: *** [pjmedia-test] Error 2
    make: *** [all] Error 1
    

    然后脚本中止。

    您有什么建议,可能是什么问题,或者如何避免?很高兴得到任何帮助!

    是否有助于强制gcc编译为32位?

1 个答案:

答案 0 :(得分:3)

我不确定,如果这可以解决您的问题,但对我来说它有效:

  

禁用SRTP(安全实时传输协议)

将以下内容添加到文件 pjlib / include / pj / config_site.h

  

#define PJMEDIA_HAS_SRTP 0

再次制作 - 应该工作。

正确的解决方案是重新实现c代码中缺少的结构。可能更好等待补丁。