【QT】QT报错:/usr/bin/ld: 找不到 -lpulse-mainloop-glib ,-lpulse ,-lglib-2.0,collect2: error: ld returned 1

本文解决了一个在Ubuntu 16.04上移植QT程序时遇到的问题,特别是当程序使用QCamera时出现的链接库错误。通过获取root权限并复制必要的链接库文件到指定位置,成功解决了该问题。

背景:重新安装了Ubuntu16.04,将原来QT程序从Ubuntu14(32位)移植到Ubuntu16,发现程序报错:

注意:如果QT中在proj中加了multimedia、multimediawidgets,使用了QCamera就有可能出现该错误。这是由于没有找到链接库:

解决方法:

(1)获取root权限:

    su

(2)在usr目录下输入命令行:

find / -name libpulse.so*


cp /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/libpulse.so

在lib下就出现了libpulse.so

(3)在usr目录下输入命令行:

find / -name libpulse-mainloop-glib.so*


cp /usr/lib/x86_64-linux-gnu/libpulse-mainloop-glib.so.0.0.5 /usr/lib/libpulse-mainloop-glib.so

在lib下就出现了libpulse-mainloop-glib.so
(4)在usr目录下输入命令行:
find / -name libglib-2.0.so*


cp /lib/x86_64-linux-gnu/libglib-2.0.so.0 /usr/lib/libglib-2.0.so

在lib下就出现了libglib-2.0.so


转自:

https://blog.youkuaiyun.com/u013321104/article/details/79522611

在使用 CMake 编译时出现 `/usr/bin/ld: cannot find -lmosquitto` 错误,通常意味着链接器无法到 `libmosquitto` 库文件。可以参考以下思路解决该问题: 1. **确认库文件是否存在**:使用 `find` 命令在系统中查 `libmosquitto` 库文件。 ```bash find / -name "libmosquitto.so*" ``` 2. **建立软链接**:如果到了库文件,但链接器无法到它,可以通过建立软链接将其放到系统默认的库搜索路径中。假设到的库文件路径为 `/path/to/libmosquitto.so`,可以使用以下命令建立软链接: ```bash sudo ln -s /path/to/libmosquitto.so /usr/local/lib/libmosquitto.so ``` 之后,需要更新动态链接器缓存: ```bash sudo ldconfig ``` 3. **更新 CMakeLists.txt**:在 `CMakeLists.txt` 文件中明确指定库文件的路径。假设库文件位于 `/path/to/lib` 目录下,可以在 `CMakeLists.txt` 中添加以下内容: ```cmake link_directories(/path/to/lib) target_link_libraries(your_target_name mosquitto) ``` 其中,`your_target_name` 是你的项目目标名称。 4. **检查依赖和更新 CMake**:这个问题可能不只是一种原因引发的,缺少依赖时也会报错,这时报这个错误的原因可能是 CMake 版本过低,无法检测出这个问题。可以提前手动更新 CMake 以更容易排查原因: ```bash sudo apt install -y apt-transport-https ca-certificates gnupg software-properties-common lsb-release wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null sudo apt update sudo apt install cmake ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值