场景说明与准备
仅恢复 CXImage 程序与库
方式一 使用既有备份归档恢复
tar xvpfz backup.tgz -C /tar xvpfj backup.tar.bz2 -C //proc、/lost+found、/backup.tgz、/mnt、/sys,恢复时保持一致可减少冲突。恢复后执行 ldconfig 刷新动态库缓存。方式二 无备份时从源码重装
sudo yum install -y gcc make cmaketar -zxvf cximage-x.x.x.tar.gz
cd cximage-x.x.x
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install
-DCMAKE_INSTALL_PREFIX=/your/path。环境配置与验证
echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/cximage.conf
sudo ldconfig
可选:在 ~/.bashrc 或 /etc/profile 中加入export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
source ~/.bashrc # 或 source /etc/profile
g++ test_cximage.cpp -o test_cximage -lcximage
./test_cximage
若提示找不到库,检查 ldconfig -p | grep cximage,确认库路径已纳入缓存。连同系统一起从镜像恢复
使用安装介质进入救援模式
dd 写入镜像(注意将 /dev/sdX 替换为实际设备):sudo dd if=/path/to/centos.iso of=/dev/sdX bs=4M status=progress sync
在救援环境中恢复
chroot /mnt/sysimagetar xvpfz /mnt/backup.tgz -C /tar xvpfj /mnt/backup.tar.bz2 -C /grub2-install /dev/sdX
grub2-mkconfig -o /boot/grub2/grub.cfg
fsck /dev/sdXYexit 后 reboot。常见问题与排查
库找不到或符号未定义
/etc/ld.so.conf.d/*.conf 并执行 sudo ldconfig;使用 ldd your_app 检查依赖是否解析到正确路径。头文件或链接参数错误
-I/usr/local/include -lcximage;若自定义安装前缀,请同步调整编译与运行环境变量。64 位系统编译旧版源码报错
cast from ‘CxFile*’ to ‘int’ loses precision 的错误,可按如下方式修补(路径因版本可能不同):// 文件:cxp_w_picpath/CxImage/tif_xfile.cpp
// 将:return (_TIFFFdOpen((int)stream, "TIFF IMAGE", mode));
// 改为:return (_TIFFFdOpen((long)stream, "TIFF IMAGE", mode));
然后重新 make clean && make。救援模式下找不到备份或分区
chroot /mnt/sysimage),再执行恢复;分区设备名可能与安装时不同,使用 lsblk、blkid 确认后再恢复。