nohup ./XXXXX &
C++通过nohup后台执行可执行程序没有启动起来,查看日志给出了提示。
//日志
./XXXX: symbol lookup error: ./XXXXX: undefined symbol: _ZN4mqttmessageC1ENS_10buffer_refIcEES2_ib
这是提示缺少mqtt相关的库文件。
1.首先想到排查的是自己的动态库加载的是否正确
[root@centos ...]#ldd ./XXXX
-bash: /usr/bin/ldd: /usr/bin/bash: bad interpreter: No such file or directory
正常情况下应该能够看到程序要加载的动态库以及路径,但这个执行的显然是不正常的。
2.排查动态库配置文件是否正确
sudo vi /etc/ld.so.conf
查看这个文件是否有该可执行程序需要的动态库,我的因为是之前把相关的路径删除了。
3.添加上需要的动态库路径,并保存生效。
//使配置文件生效
sudo ldconfig -v