CentOS 7下用GCC和make编译安装PJSIP后无法找到pjsua
CentOS 7源码安装PJSIP后找不到pjsua的解决办法
问题情况
我在CentOS 7里从源码安装PJSIP 2.13,执行了这些命令:
cd /usr/local/src wget https://github.com/pjsip/pjproject/archive/refs/tags/2.13.tar.gz tar zxvf 2.13.tar.gz cd pjproject-2.13/ ./configure make dep make make install
全程没报错,但跑which pjsua时,系统提示找不到这个文件:
/usr/bin/which: no pjsua in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/bin)
查看make install的输出,它只复制了库文件、头文件和pkgconfig配置,根本没处理pjsua二进制文件。
问题原因
PJSIP默认的make install仅安装开发用的库和头文件,不会自动把pjsua这类工具二进制文件装到系统路径里。编译好的pjsua其实存放在源码目录的bin子文件夹中,只是没被放到系统PATH能识别的位置。
解决办法
办法1:直接运行源码目录中的pjsua
进到编译后的二进制文件目录执行:
cd /usr/local/src/pjproject-2.13/pjsip/bin/ ./pjsua-x86_64-unknown-linux-gnu
(文件名可能根据系统架构略有差异,可通过ls命令查看具体名称)
办法2:将pjsua复制到系统PATH目录
把文件复制到/usr/local/bin(该目录已在你的系统PATH中):
cp /usr/local/src/pjproject-2.13/pjsip/bin/pjsua-x86_64-unknown-linux-gnu /usr/local/bin/pjsua chmod +x /usr/local/bin/pjsua
之后直接在终端输入pjsua即可调用。
办法3:重新编译时指定安装工具
如果希望后续make install自动安装pjsua这类工具,重新配置编译时添加参数:
cd /usr/local/src/pjproject-2.13/ make clean ./configure --enable-apps make dep make make install
--enable-apps参数会让安装过程自动将pjsua等工具部署到系统路径下。
内容的提问来源于stack exchange,提问作者samnoon
相关产品推荐
相关产品推荐

