下面以 Debian / Ubuntu 环境为例,说明如何编译 CxImage(一个较老但常用的 C++ 图像处理库)。
先在终端安装编译工具:
sudo apt update
sudo apt install -y build-essential g++ make
如果你打算用 Code::Blocks / wxWidgets / MFC(Windows),在 Debian 下一般只用 Makefile 或 CMake。
wget https://downloads.sourceforge.net/cximage/cximage599c.zip
unzip cximage599c.zip
cd cximage
目录结构大致如下:
cximage/
├── CxImage/
├── jpeg/
├── png/
├── tiff/
├── zlib/
├── Makefile
└── ...
cd cximage
make
编译完成后会生成:
libcximage.a
uint / long long 未定义修改:
typedef unsigned int uint;
或在编译时加:
make CXXFLAGS="-fpermissive"
register 关键字C++17 已移除,可改为:
make CXXFLAGS="-std=c++14"
如果你只要 CxImage 核心库:
CXX = g++
CXXFLAGS = -std=c++14 -I. -I./CxImage -I./jpeg -I./png -I./zlib
SRC = $(wildcard CxImage/*.cpp jpeg/*.cpp png/*.cpp zlib/*.cpp)
libcximage.a: $(SRC)
$(CXX) $(CXXFLAGS) -c $^
ar rcs $@ *.o
clean:
rm -f *.o libcximage.a
编译:
make
#include "CxImage.h"
int main() {
CxImage image;
image.Load("test.jpg", CXIMAGE_FORMAT_JPG);
image.Save("out.png", CXIMAGE_FORMAT_PNG);
}
编译你的程序:
g++ main.cpp -I./cximage -L./cximage -lcximage -lpthread
示例 CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(cximage_demo)
set(SRC
CxImage/*.cpp
jpeg/*.cpp
png/*.cpp
zlib/*.cpp
)
add_library(cximage STATIC ${SRC})
target_include_directories(cximage PUBLIC .)
mkdir build && cd build
cmake ..
make
✅ CxImage 不支持 C++17/20
✅ 建议 -std=c++14
✅ 仅适合 老项目 / 图像格式转换
✅ 新项目推荐:OpenCV / stb_image / libfreeimage
如果你告诉我:
我可以给你一份 可直接编译的精简版本。