[C++] 如何静态链接imagemagick
首先,使用最新版的imagemagick,因为较早的版本不能很好的支持static编译方式(据说小于6.5的都可能有问题)。
第二,到imagemagick-src目录,执行命令 ./configure --disable-shared --prefix=$(YOUR_IM_PATH)
第三,如果你有动态库需要使用这个静态编译的imagemagick,那么还要export CFLAGS="-O3 -Wall -fPIC"
第四,执行make命令,执行make install命令
第五,去$(YOUR_IM_PATH)目录,欣赏一下bin/Magick++-config --cppflags --cxxflags --ldflags --libs的输出
第六,回到你自己的项目目录,写代码调用imagemagick
第七,编译g++ -o mytest -g -O3 main.cpp `$(YOUR_IM_PATH)/Magick++-config --cppflags --cxxflags --ldflags --libs`
最后,ldd mytest看看依赖项是否符合预期。
另外,configure的时候,建议加上参数--with-quantum-depth=8 --disable-openmp
参考:
http://www.imagemagick.org/script/advanced-unix-installation.php