在 Debian 上安装/使用 CxImage(一个主要用于图像处理的 C++ 库,支持 BMP/JPG/PNG/GIF/TIF 等)时,有几个常见注意点,下面按“最容易踩坑”的顺序说明。
CxImage 不是 Debian 官方维护库,所以:
apt search cximage
一般搜不到。
✅ 常见做法:
CxImage 依赖一些图像和压缩库,不装会编译失败。
建议先执行:
sudo apt update
sudo apt install -y \
build-essential \
cmake \
libjpeg-dev \
libpng-dev \
libtiff-dev \
libgif-dev \
zlib1g-dev
如果你用 CxImage 的较老版本,还可能依赖:
libjasper-dev(JPEG2000,老版本常用)libmng-dev(MNG 格式,可选)CxImage 官方最后活跃版本大约在 2013–2015 年,问题包括:
例如:
register 关键字throw()✅ 解决方式:
常见修改:
register int x; → int x;
CxImage 源码里经常写:
#include "ximage.h"
但编译时要指定 include 路径:
-I./cximage
假设你下载了 cximage701.zip:
unzip cximage701.zip
cd cximage
g++ main.cpp \
cximage/*.cpp \
jpeg/*.cpp \
png/*.cpp \
tiff/*.cpp \
zlib/*.cpp \
-I. -Icximage -Ipng -Ijpeg -Itiff \
-lpthread \
-o test
⚠️ 不同版本目录结构不同,需看源码目录。
如果你不是必须用 CxImage:
| 需求 | 推荐 |
|---|---|
| 图像读写 | stb_image / OpenCV / FreeImage |
| Linux 项目 | libpng + libjpeg |
| 跨平台 | OpenCV |
CxImage 在 Windows 下历史很长,但在 Debian / Linux 服务器环境中并不主流。
建议:
| 错误 | 原因 |
|---|---|
jpeglib.h not found |
没装 libjpeg-dev |
undefined reference |
没链接 cximage 源文件 |
| 编译一堆警告 | 老代码正常现象 |
| PNG 读不出 | zlib/png 版本不兼容 |
如果你愿意,可以告诉我:
我可以直接给你一份可编译的 Makefile 或 CMakeLists.txt。