<p>我可以为python3.7编译pjsua2。如果你有更好的解决方案或建议,让我知道</p>
<p>先决条件:</p>
<ul>
<li>列表项</li>
<li>下载并提取swig(swigwin 4.0.0)</li>
<li>下载并安装JDK</li>
<li>下载并安装Python(Python 3.7.3 x64)并设置为自定义安装:
<ul>
<li>勾选“将Python添加到环境变量”</li>
<li>勾选“预编译标准库”</li>
<li>勾选“下载调试符号”</li>
<li>勾选“下载调试二进制文件(需要VS 2015或更高版本)”</li>
<li>如果需要,请设置自定义路径</li>
<li>将swigwin位置添加到系统路径</li>
<li>将Python位置添加到系统路径</li>
<li>添加JAVA_HOME系统变量</li>
<li>将%JAVA_HOME%\bin添加到系统路径</li>
<li>安装Visual Studio 2015社区版</li>
</ul></li>
</ul>
<p>步骤:</p>
<ul>
<li>下载并解压缩pjsip2.8</li>
<li>在pjlib/inlclude/pj/folder下创建空的config_site.h</li>
<li>在VS中打开pjproject-vs14.sln</li>
<li>将出现不受支持的警告窗口,请按“确定”</li>
<li>在“Install Missing Features”(安装缺少的功能)窗口中,按Install</li>
<li>将启动VS安装程序,必须关闭VS才能完成安装。在</li>
<li>我还在安装中添加了“Windows10SDK(10.0.10586)”。在</li>
<li>我也在我的Windows10上启用了开发人员模式,但这可能是可选的</li>
<li>在VS中再次打开项目</li>
<li>将project设置为Release,并在顶部下拉列表中设置x64</li>
<li>右键单击解决方案,然后转到“配置属性”>;“配置”</li>
<li>从选择中删除所有与uwp和wp8相关的项目,如pjsua_cli_uwp_comp、pjsua_cli_wp8_comp</li>
<li>按“确定”,然后生成解决方案</li>
<li>在构建之后,我有34个成功的解决方案,0个失败的解决方案。在</li>
<li><p>将以下行添加到pjsipapps/src/swig文件夹中的pjsua2.i</p>
<pre><code>%inline %{
pj_ssize_t new_pj_ssize_t(int s) {
return (pj_ssize_t) s;
}
%}
</code></pre>
<blockquote>
<p>this extra inline swig function provides workaround for create recorder <a href="http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2018-August/041060.html" rel="nofollow noreferrer">issue</a></p>
</blockquote></li>
<li>打开命令行(powershell对此不起作用)</li>
<li>转到pjsip apps/src/swig/python</li>
<li><p>执行以下命令:</p>
<pre><code>swig -I../../../../pjlib/include -I../../../../pjlib-util/include -I../../../../pjmedia/include -I../../../../pjsip/include -I../../../../pjnath/include -py3 -c++ -python -threads ../pjsua2.i
</code></pre></li>
<L> >P>添加新的“空项目”(Visual C++)以SigigpPython PJSUA2名称</p> </LI>求解
<li>添加libpjproject和pjsua2_lib作为这个新项目的引用</li>
<li>右键单击“头文件”>;“添加”>;“现有项目…”。。。在</li>
<li>添加pjsip apps\src\swig\pjsua2_wrapp.h</li>
<li>在项目中添加一个名为“Generated Code”的“new filter”</li>
<li>右键单击“生成代码”并添加新的现有项。在</li>
<li>添加pjsip apps\src\swig\pjsua2_cxwrapp在</li>
<li>右键单击项目和链接器>输入</li>
<li>将“Ws2_32.Lib”添加到“Additional Dependencies”</li>
<li>转到“VC++目录”</li>
<li>添加以下文件夹以包含路径(我已使用完整路径!):
<ul>
<li>c: \python37\包括</li>
<li>pjnath\包含</li>
<li>pjsip\包含</li>
<li>pjmedia\包括</li>
<li>pjlib util\include</li>
<li>pjlib\包括</li>
</ul></li>
<li>将以下文件夹添加到库目录:
<ul>
<li>C: \Python36\libs</li>
</ul></li>
<li>一般设置:
<ul>
<li>目标名称:$(项目名称)</li>
<li>目标扩展:.pyd</li>
<li>配置类型:动态库(.dll)</li>
</ul></li>
<li>转到解决方案的属性,并选择swig_python_pjsua2来构建</li>
<li>右键单击swig_python_pjsua2并构建</li>
<li>生成应成功完成</li>
<li>你需要在python文件库中使用jsp2。在</li>
<li>在pjsua.py位于pjsip apps/src/swig/python下</li>
<li>x64/Release/_swig_python_pjsua2.pyd(将其重命名为_pjsua2.pyd)</li>
<li>要进行测试,请将这些文件复制到文件夹中,从同一文件夹启动python并键入:
<ul>
<li>导入pjsua2</li>
</ul></li>
</ul>