我正试图在我的Ubuntu12.04计算机上为定向梯度直方图设置一个名为fastHOG的库。当我试图编译现成的fastHOG代码时,编译器会抱怨它找不到fltk/run.h。根据Rahul Ashok关于fastHOG的教程的说法,我需要安装快灯工具包(FLTK) 2.0。本教程说,除了2.0以外的FLTK版本不起作用。
因此,我正在尝试编译FLTK2.0 (svn co http://svn.easysw.com/public/fltk/fltk/trunk fltk-2.0)。当我在make文件夹中执行fltk-2.0时,会得到类似于undefined reference to 'FcInit'的错误。
关于如何使FLTK2.0正确编译的建议吗?
下面是在Ubuntu12.04上使用g++ 4.6.3构建FLTK2.0时获得的完整错误打印结果:
...
Linking fluid2...
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::list_fonts(fltk::Font**&): error: undefined reference to 'FcInit'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::list_fonts(fltk::Font**&): error: undefined reference to 'FcPatternCreate'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::list_fonts(fltk::Font**&): error: undefined reference to 'FcObjectSetBuild'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::list_fonts(fltk::Font**&): error: undefined reference to 'FcFontList'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::list_fonts(fltk::Font**&): error: undefined reference to 'FcPatternDestroy'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::list_fonts(fltk::Font**&): error: undefined reference to 'FcPatternGetString'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::list_fonts(fltk::Font**&): error: undefined reference to 'FcFontSetDestroy'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::Font::sizes(int*&): error: undefined reference to 'FcPatternGetDouble'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::Font::sizes(int*&): error: undefined reference to 'FcFontSetDestroy'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::Font::encodings(char const**&): error: undefined reference to 'FcFontSetDestroy'
../lib/libfltk2.a(Font.o):Font.cxx:function fltk::Font::encodings(char const**&): error: undefined reference to 'FcPatternGetString' ../lib/libfltk2.a(Image.o):Image.cxx:function figure_out_visual(): error: undefined reference to 'XRenderFindStandardFormat'
../lib/libfltk2.a(Image.o):Image.cxx:function fl_xrender_draw_image(unsigned long, fltk::PixelType, fltk::Rectangle const&, fltk::Rectangle const&): error: undefined reference to 'XRenderCreatePicture'
../lib/libfltk2.a(Image.o):Image.cxx:function fl_xrender_draw_image(unsigned long, fltk::PixelType, fltk::Rectangle const&, fltk::Rectangle const&): error: undefined reference to 'XRenderSetPictureFilter'
../lib/libfltk2.a(Image.o):Image.cxx:function fl_xrender_draw_image(unsigned long, fltk::PixelType, fltk::Rectangle const&, fltk::Rectangle const&): error: undefined reference to 'XRenderSetPictureTransform'
../lib/libfltk2.a(Image.o):Image.cxx:function fl_xrender_draw_image(unsigned long, fltk::PixelType, fltk::Rectangle const&, fltk::Rectangle const&): error: undefined reference to 'XRenderComposite'
../lib/libfltk2.a(Image.o):Image.cxx:function fl_xrender_draw_image(unsigned long, fltk::PixelType, fltk::Rectangle const&, fltk::Rectangle const&): error: undefined reference to 'XRenderComposite'
../lib/libfltk2.a(Image.o):Image.cxx:function fl_xrender_draw_image(unsigned long, fltk::PixelType, fltk::Rectangle const&, fltk::Rectangle const&): error: undefined reference to 'XRenderComposite'
../lib/libfltk2.a(Image.o):Image.cxx:function fl_xrender_draw_image(unsigned long, fltk::PixelType, fltk::Rectangle const&, fltk::Rectangle const&): error: undefined reference to 'XRenderFreePicture'
collect2: ld returned 1 exit status
make[1]: *** [fluid2] Error 1
make: *** [all] Error 2发布于 2012-12-26 06:06:45
最后一个错误似乎表明您缺少xrender的开发文件。尝试使用他们安装apt-get (可能是sudo apt-get install libxrender-dev ),看看它是否解决了这些问题。
前几个错误类似地表示您丢失了这个图书馆的开发文件。尝试安装libfontconfig1-dev
发布于 2014-01-11 13:58:29
有点晚了,但只是为了完整性而增加了。FLTK2并不是凭空捏造的。
1)需要以下软件包:一旦获得它们,请重新运行配置。可能还有更多,因为我还没有在处女系统上尝试过这个。
2)在通过配置生成makeinclude之后修改makeinclude(或者修改config.in,但我还没有弄清楚该如何做)。
LDLIBS add -lfontconfig -lXrender
GDLIBS add -lfontconfig -lXrender -lfreetype发布于 2012-12-29 03:10:35
有趣的是--似乎fastHOG成功地构建了足够多的FLTK,从而克服了编译错误。
https://stackoverflow.com/questions/14036485
复制相似问题