构建 gimp Separate-plus:对符号‘pow@@GLIBC_2.2.5’未定义引用

构建 gimp Separate-plus:对符号‘pow@@GLIBC_2.2.5’未定义引用

我如何获取separate+0.5.8的Makefile来构建相应的gimp插件?

问题描述

按照惯例

make
sudo make install

使用 lcms2 的 split+-0.5.8 的步骤(取消注释了 split+ 的 Makefile 中的第 3 行条目)我遇到了错误

/usr/bin/ld: Separate-core.o: 对符号“pow@@GLIBC_2.2.5”未定义引用 //lib/x86_64-linux-gnu/libm.so.6:添加符号时出错:命令行中缺少 DSO

Makefile 处理的 gcc 命令是(之后您会看到上面的错误消息):

gcc -g -DUSE_LCMS2 `pkg-config gimp-2.0 --cflags` `pkg-config gimpui-2.0 --cflags` `pkg-config gtk+-2.0 --cflags` `pkg-config lcms2 --cflags` -DENABLE_COLOR_MANAGEMENT -DENABLE_NLS -DGETTEXT_PACKAGE="\"gimp20-separate\"" -DUSE_ICC_BUTTON -c lcms_wrapper.c
gcc -g  separate-core.o separate-gui.o separate-export.o util.o tiff.o psd.o jpeg.o iccbutton.o lcms_wrapper.o -o separate `pkg-config gimp-2.0 --libs` `pkg-config gimpui-2.0 --libs` `pkg-config gtk+-2.0 --libs` `pkg-config lcms2 --libs` -ltiff -ljpeg
/usr/bin/ld: separate-core.o: undefined reference to symbol 'pow@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line

杂项

在 elementaryOS 0.5 (ubuntu 16.04) 上完成。make 之前进行的一些步骤:

sudo apt-add-repository ppa:otto-kesselgulasch/gimp
sudo apt update
sudo apt install gimp gimp-dds gimp-gap gimp-lensfun gimp-gmic gimp-plugin-registry gimp-data-extras gimp-dcraw icc-profiles icc-profiles-free pandora 
wget http://sourceforge.jp/projects/separate-plus/downloads/47873/separate+-0.5.8.zip
sudo apt install libgimp2.0-dev libtiff5-dev
sudo apt install liblcms2-2 liblcms2-dev liblcms2-utils 

答案1

我刚刚遇到了这个问题。我以为是库顺序不对,但看起来我只需要包含数学库。像这样编辑 Makefile:

  • 在库列表(pkgconfig 内容)中为数学库添加一行,例如:
    M_LIB = -lm
    
  • 评论旧图书馆列表并添加新的图书馆列表,例如:
    LIBS = $(M_LIB) $(GIMP_LIB) $(GTK_LIB) $(LCMS_LIB) $(TIFF_LIB) $(JPEG_LIB)
    

链接器现在应该不再抱怨了。如果安装到主目录,请确保将 PREFIX 设置为本地文件,否则 po/Makefile 将尝试在 /usr 下安装语言环境文件。

希望有所帮助。

相关内容