编译 Fast Light Toolkit (FLTK) 2.0 以与 fastHOG 一起使用

Posted

技术标签:

【中文标题】编译 Fast Light Toolkit (FLTK) 2.0 以与 fastHOG 一起使用【英文标题】:Compiling Fast Light Toolkit (FLTK) 2.0 to use with 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

【问题讨论】:

【参考方案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 克服其编译错误。

【讨论】:

以上是关于编译 Fast Light Toolkit (FLTK) 2.0 以与 fastHOG 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Mvvm Light Toolkit 入门

MVVM Light Toolkit 示例 [关闭]

如何使用 MVVM Light Toolkit 打开一个新窗口

volumetric rendering ---fog/ light/cloud

Fl_X 编译错误

节点同步lightfastfull的区别