[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

http://www.imagemagick.org/Usage/api/#speed

你可能感兴趣的:(C++,Path,IM)