在 Debian 上编译 CxImage 可以按下面步骤来。CxImage 是一个较老的 C++ 图像处理库,官方源码里主要是 Windows/VC 工程,在 Linux 下需要手动处理。
下面给你一套 在 Debian (10/11/12) 上可用的通用做法。
先安装必要的工具链和依赖:
sudo apt update
sudo apt install -y \
build-essential \
cmake \
git \
libjpeg-dev \
libpng-dev \
libtiff-dev \
libjasper-dev \
zlib1g-dev
如果
libjasper-dev找不到,可以跳过(部分格式会不可用)。
CxImage 官方已多年不更新,推荐用 GitHub 上的移植版本:
git clone https://github.com/antirez/cximage.git
cd cximage
或者你也可以从 SourceForge 下载原版并解压。
mkdir build
cd build
cmake ..
如果 CMake 报错,可以手动指定:
cmake .. -DCMAKE_CXX_COMPILER=g++
make -j$(nproc)
成功后你会得到:
libcximage.alibcximage.so有些版本没有 CMakeLists.txt,可以用 Makefile 手动编译:
CXX = g++
CXXFLAGS = -std=c++11 -fPIC -I.
SRCS = $(wildcard *.cpp)
OBJS = $(SRCS:.cpp=.o)
libcximage.so: $(OBJS)
$(CXX) -shared -o $@ $^
clean:
rm -f *.o *.so
编译:
make
test.cpp#include "ximage.h"
#include <iostream>
int main() {
CxImage img;
std::cout << "CxImage OK" << std::endl;
return 0;
}
编译:
g++ test.cpp -I./cximage -L./build -lcximage -o test
运行:
export LD_LIBRARY_PATH=./build
./test
jpeglib.h / png.h 找不到✅ 已安装 libjpeg-dev libpng-dev
HBITMAP)CxImage 原版大量使用 WinAPI
✅ 解决方式:
#define WIN32_LEAN_AND_MEAN + 禁用 GUI 相关代码-std=c++11
或
-std=c++14
如果你只是想在 Debian 上做图像处理,更推荐:
| 库 | 说明 |
|---|---|
| OpenCV | 功能最强 |
| stb_image | 单头文件 |
| FreeImage | 与 CxImage 类似 |
| libpng + libjpeg | 底层 |
CxImage 已 停止维护多年,不适合新项目。
如果你愿意,我可以: ✅ 帮你 改一份 Linux 可用的 CxImage 源码 ✅ 给你 完整 CMakeLists.txt ✅ 帮你 移植到 Debian + OpenCV
只要告诉我你用 CxImage 做什么(读图?处理?保存?)