编译 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-dev2) 在 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 打开一个新窗口