人妻丰满熟妇AV无码片,岛国AV无码免费无禁网站,丰满岳乱妇一区二区三区,男插女高潮一区二区

cgo gcc 靜態(tài)編譯ImageMagick

技術(shù)分享 2019-10-01 00:00:00
ImageMagick 文件的依賴dll 整整一個頁面啊,做的只是一個小工具,雖然編譯鏈接默認(rèn)是靜態(tài)庫,但是還是靜態(tài)庫會好點
=================


重新編譯ImageMagick
既然要做一個便攜版本,用不上的模塊就先盡可能去掉。另外靜態(tài)編譯需要先生成靜態(tài)庫,不過ImageMagick的默認(rèn)選項就是同時生成靜態(tài)庫和動態(tài)庫,這樣也不需要加額外的參數(shù)了。

./configure --with-djvu=no --with-fontconfig=no --with-freetype=no \
--with-magick-plus-plus=no --with-openexr=no --with-pango=no \
--with-wmf=no --with-x=no
順便看看都是些什么東西

AutoTrace - converts bitmap to vector graphics

DJVU 掃描格式,PDF的替代品

freetype 字體光柵化

lcms little color management system

lqr LiquidRescale

Pango 文字渲染

wmf windows 矢量圖

OpenEXR exr格式

gopkg.in/gographics/imagick.v3/imagick
這是ImageMagick的golang sdk,其實就是cgo做了一個很薄的封裝。直接go build會自動調(diào)用pkg-config加載鏈接動態(tài)庫的參數(shù),這里要做靜態(tài)編譯,那就需要手動操作了。

編譯參數(shù),直接pkg-config生成

export CGO_CFLAGS="`pkg-config --cflags MagickWand MagickCore`"
鏈接參數(shù),還是pkg-config,看看依賴了些什么

pkg-config --libs --static MagickWand MagickCore
將有環(huán)境依賴的庫配置為靜態(tài)編譯,其他的通用的庫維持動態(tài)庫鏈接不變。根據(jù)鏈接器的鏈接算法,先發(fā)現(xiàn)符號引用,然后根據(jù)引用鏈入定義,應(yīng)該把有依賴的庫放前面,被依賴的庫放后面。

export CGO_LDFLAGS="\
-Wl,-Bstatic \
`pkg-config --libs MagickWand MagickCore` \
-ljbig -ltiff -ljpeg -lwebp -llzma -lfftw3 -lbz2 -lgomp \
-Wl,-Bdynamic \
-llcms2 -llqr-1 -lglib-2.0 -lpng12 -lxml2 -lz -lm -ldl \
"
清除編譯緩存

rm -rf $GOPATH/pkg/linux_amd64/gopkg.in/gographics/imagick.v3
編譯時加上no_pkgconfig的參數(shù)

go install -tags no_pkgconfig -v gopkg.in/gographics/imagick.v3/imagick
咨詢小瓶科技
咨詢我們
頂部