以下命令有效
g++ file.cpp $( GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs )
但我想要一个未链接到库的静态可执行文件,所以我尝试过
g++ file.cpp $( GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs ) -static
但它只会产生以下错误
/usr/bin/ld.bfd.real: /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbeginT.o: relocation R_X86_64_32 against `__DTOR_END__' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.6/crtbeginT.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
添加-fPIC
给出相同的结果。
我正在使用 Ubuntu 12.04 64 位标准存储库附带的 GraphicsMagick++ 版本。
由于 GraphicsMagick++ 是 ImageMagick 的一个分支,ImageMagick 的一些旧技巧可能会起作用,但我从未使用过 ImageMagick,只有 GraphicsMagick++。