ubuntu 14 安装g2o g2o_viewer以及“x86_64-linux-gnu/libQGLViewer.so”error处理

在Ubuntu 14.04上安装g2o时遇到'gluNewQuadric'未定义的引用错误,原因是Qt版本冲突。解决方案包括卸载原有g2o,下载g2o源码,切换到兼容Ubuntu 14.04的版本,安装依赖,编译安装,最后成功运行g2o_viewer。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在下载完g2o之后进行make 的时候就会显示

x86_64-linux-gnu/libQGLViewer.so:对‘gluNewQuadric’未定义的引用

等这类的错误,查找了资料后发现是因为  Ubuntu 14.04 下使用的是 Qt4,而当前的 g2o 版本使用的是 Qt5,因此版本上冲突,如果想要安装 g2o_viewer 话,就需要切换g2o的有效版本,具体过程如下:

一、卸载原来安装的g2o:

sudo rm -rf /usr/local/include/g2o
sudo rm -rf /usr/local/lib/libg2o*

二、下载g2o :

git clone https://github.com/RainerKuemmerle/g2o/
cd g2o

        注意:一定要进入到g2o目录下,再进行下面的操作。

三、切换g2o有效版本

[如果你的Ubuntu 是 16.04 版本,那么从github上下载下来之后 一定不要操作这一步,直接跳到 四 步骤即可

# 看下tm.so的权限是否正确? # 目前系统无法加载tm.so ####### Modules Section ######## /* set paths to location of modules */ mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/" root@flexusx-8b5d:/etc/kamailio# ls -l /usr/lib/x86_64-linux-gnu/kamailio/modules/*.so -rw-r--r-- 1 root root 104984 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/acc_diameter.so -rw-r--r-- 1 root root 56256 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/acc_json.so -rw-r--r-- 1 root root 209240 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/acc.so -rw-r--r-- 1 root root 44136 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/alias_db.so -rw-r--r-- 1 root root 749056 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/app_jsdt.so -rw-r--r-- 1 root root 597560 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/app_sqlang.so -rw-r--r-- 1 root root 64456 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/async.so -rw-r--r-- 1 root root 81184 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/auth_db.so -rw-r--r-- 1 root root 125576 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/auth_diameter.so -rw-r--r-- 1 root root 154560 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/auth_identity.so -rw-r--r-- 1 root root 155672 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/auth.so -rw-r--r-- 1 root root 56152 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/auth_xkeys.so -rw-r--r-- 1 root root 249576 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/avpops.so -rw-r--r-- 1 root root 106608 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/avp.so -rw-r--r-- 1 root root 44328 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/benchmark.so -rw-r--r-- 1 root root 24520 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/blst.so -rw-r--r-- 1 root root 80912 Feb 18 2022 /usr/lib/x86_64-linux-gnu/kamailio/modules/call_control.so -rw-r--r-- 1 root root 80856 Feb 18 2022 /usr/lib/x86_64-linux-gnu
03-15
<think>好的,我现在需要解决用户提到的Kamailio中tm.so文件的权限问题以及系统无法加载该模块的问题。首先,我得回忆一下Kamailio的基本结构。Kamailio是一个SIP服务器,模块通常存放在类似/usr/lib/x86_64-linux-gnu/kamailio/modules/这样的目录下。tm.so是事务管理模块,对Kamailio的正常运行至关重要。 用户的问题可能涉及文件权限或路径配置错误。首先,我应该指导用户检查tm.so文件是否存在,使用ls命令查看。如果文件不存在,可能需要重新安装Kamailio或该模块。接着,文件权限是否正确?通常需要至少可读可执行,所属用户和组是否正确,比如kamailio或root。然后,检查Kamailio的配置文件kamailio.cfg,是否加载了tm模块,路径是否正确。如果路径不对,需要修改loadmodule行的路径。 另外,SELinux或AppArmor等安全模块可能会阻止访问,需要检查日志,如/var/log/syslog或journalctl -u kamailio,看看有没有权限拒绝的记录。如果是SELinux的问题,可能需要调整策略或禁用。还有,Kamailio进程的用户是否有权限访问tm.so及其目录?可能需要更改目录权限或用chown调整所属用户。 此外,确保所有依赖库都已安装,使用ldd tm.so检查是否有缺失的库。最后,配置文件语法是否正确,用kamailio -c检查配置,然后重启服务。 用户提供的引用[^1]提到了重启Kamailio服务的命令,所以最后一步重启是必要的。可能需要综合这些步骤逐步排查,从存在性、权限、配置到依赖项,逐一排除问题。</think>### Kamailio tm.so模块权限问题及加载失败的解决方案 #### 一、检查文件存在性与路径 1. 确认`tm.so`文件是否存在: ```bash ls -l /usr/lib/x86_64-linux-ginux/kamailio/modules/tm.so ``` - 若文件不存在,需重新安装kamailio或编译模块 #### 二、验证文件权限设置 1. 查看详细权限: ```bash ls -l /usr/lib/x86_64-linux-ginux/kamailio/modules/tm.so ``` - 要求权限:至少`-rw-r--r--`(644) - 修正权限命令: ```bash sudo chmod 644 tm.so ``` 2. 检查父目录权限: ```bash ls -ld /usr/lib/x86_64-linux-ginux/kamailio/modules/ ``` - 要求权限:至少`drwxr-xr-x`(755) #### 三、验证文件所有权 1. 确认文件归属: ```bash ls -l /usr/lib/x86_64-linux-ginux/kamailio/modules/tm.so ``` - 推荐所有者:`kamailio:kamailio`或`root:root` - 修改所有权命令: ```bash sudo chown kamailio:kamailio tm.so ``` #### 四、检查SELinux/AppArmor限制 1. 临时禁用SELinux测试: ```bash setenforce 0 ``` 2. 查看安全日志: ```bash grep avc /var/log/audit/audit.log | grep tm.so ``` #### 五、验证模块加载配置 1. 检查`kamailio.cfg`配置: ```cfg loadmodule "tm.so" ``` 2. 确认模块路径正确: ```cfg # 示例正确配置 mpath="/usr/lib/x86_64-linux-ginux/kamailio/modules/" ``` #### 六、依赖库检查 1. 使用ldd验证依赖: ```bash ldd /usr/lib/x86_64-linux-ginux/kamailio/modules/tm.so ``` #### 七、服务重启步骤 1. 语法检查: ```bash kamailio -c ``` 2. 重启服务: ```bash sudo systemctl restart kamailio ``` #### 八、日志分析 ```bash tail -f /var/log/syslog | grep -i tm journalctl -u kamailio --since "5 minutes ago" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值