【问题标题】:Compiling Fast Light Toolkit (FLTK) 2.0 to use with fastHOG编译 Fast Light Toolkit (FLTK) 2.0 以与 fastHOG 一起使用
【发布时间】:2012-12-26 05:49:45
【问题描述】:

我正在尝试在我的 Ubuntu 12.04 计算机上为 histograms of oriented gradients 设置一个名为 fastHOG 的库。当我尝试编译off-the-shelf fastHOG code 时,编译器抱怨它找不到fltk/run.h。根据Rahul Ashok's tutorial about fastHOG,我需要安装Fast Light Toolkit (FLTK) 2.0。该教程说 2.0 以外的 FLTK 版本不起作用。

所以,我正在尝试编译 FLTK 2.0 (svn co http://svn.easysw.com/public/fltk/fltk/trunk fltk-2.0)。当我在fltk-2.0 文件夹中执行make 时,会出现undefined reference to 'FcInit' 之类的错误。

关于如何正确编译 FLTK 2.0 的任何建议?

这是我在 Ubuntu 12.04 上使用 g++ 4.6.3 构建 FLTK 2.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

【问题讨论】:

    标签: c++ gcc image-processing computer-vision fltk


    【解决方案1】:

    您最后的错误似乎表明您缺少xrender 的开发文件。尝试使用apt-get(可能是sudo apt-get install libxrender-dev)安装them,看看它是否能解决这些问题。

    前几个错误同样表明您缺少this library 的开发文件。尝试安装libfontconfig1-dev

    【讨论】:

    • 谢谢——我刚刚试了一下。 libxrender-dev is already the newest version
    • 还有什么我想尝试的吗?
    • 我想不出别的 :( 我希望 Makefile 中的标志正确地包含上述 2 个库?
    【解决方案2】:

    有点晚,但只是为了完整性而添加。 FLTK2 并非开箱即用。

    1) 需要以下软件包:获得它们后,重新运行配置。可能还有更多,因为我没有在原始系统上尝试过。

    • libglu1-mesa-dev
    • libice-dev
    • libjpeg62-dev
    • libpng12-dev
    • libx11-dev
    • libxcursor-dev
    • libxext-dev
    • libxft-dev
    • libxinerama 开发
    • libxi 开发
    • 台面通用开发
    • zlib1g-dev

    2) 在 makeinclude 由 configure 生成后修改它(或者修改 config.in 但我还没有弄清楚如何做)。

    LDLIBS add -lfontconfig -lXrender
    GDLIBS add -lfontconfig -lXrender -lfreetype
    

    【讨论】:

      【解决方案3】:

      有趣——似乎已经成功构建了“足够”的 FLTK,以便 fastHOG 克服其编译错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        • 2011-06-19
        • 2011-05-29
        • 2013-09-26
        • 1970-01-01
        • 2011-11-14
        相关资源
        最近更新 更多