第一次使用stackoverflow,如有不妥请指正!
我想使用 PJSIP 2.1 s python 模块(包装器)。我这样试过:
- 阅读documentation .
- 相应地检查要求。这是我的设置:
- OS X 10.9(小牛)
- GNU Make 3.81
- binutils 2.23.2(可能通过 Macports.. 不确定)
- 苹果 LLVM 5.0
- 下载 v2.1:pjproject-2.1.tar.bz2 并将其解压到我的主目录中。
- CD 进入 pjproject-2.1 并在终端中运行:
./configure && make dep && make
。
当涉及到这一行时(我相信是在 make 期间):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 位会有帮助吗?
最佳答案
我不确定这是否能解决您的问题,但对我来说它有效:
Disable SRTP (Secure Real-Time Transport Protocol)
将以下内容添加到文件pjlib/include/pj/config_site.h
#define PJMEDIA_HAS_SRTP 0
再次制作 - 应该可以。
正确的解决方案是在 C 代码中重新实现缺失的结构。可能最好等待补丁。
关于python - 在 OS X 10.9 上编译 PJSUA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20274027/