用FL ++链接FLTK

时间:2017-11-01 15:49:53

标签: g++ fltk

为了试用FLTK,我有以下文件结构:

project
|--main.cc
|--include
|  |--FL
|  |  |--all FLTK header files
|--lib
|  |--libfltk.a
|  |--other fltk libraries

在main.cc中包含以下内容:

#include <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Window.H>

int main()
{
    Fl_Window window(200, 200, "Window title");
    Fl_Box box(0,0,200,200,"Hello, World!");
    window.show();
    return Fl::run();
}

现在我跑的时候:

g++ -std=c++11 -c -o main.o main.cc -I include
g++ -std=c++11 -o main.exe main.o -L lib -lfltk

第二次调用g ++后,我收到了一大堆错误:

lib/libfltk.a(Fl.o):Fl.cxx:(.text$_ZL13image_to_iconPK12Fl_RGB_Imagebii+0xf3): undefined reference to `CreateDIBSection@24'
lib/libfltk.a(Fl.o):Fl.cxx:(.text$_ZL13image_to_iconPK12Fl_RGB_Imagebii+0x1cf): undefined reference to `DeleteObject@4'
lib/libfltk.a(Fl.o):Fl.cxx:(.text$_ZL13image_to_iconPK12Fl_RGB_Imagebii+0x258): undefined reference to `CreateBitmap@20'
lib/libfltk.a(Fl.o):Fl.cxx:(.text$_ZL13image_to_iconPK12Fl_RGB_Imagebii+0x2a6): undefined reference to `DeleteObject@4'
lib/libfltk.a(Fl.o):Fl.cxx:(.text$_ZL13image_to_iconPK12Fl_RGB_Imagebii+0x2b1): undefined reference to `DeleteObject@4'
lib/libfltk.a(Fl.o):Fl.cxx:(.text$__tcf_1+0x5b): undefined reference to `OleUninitialize@0'
lib/libfltk.a(Fl.o):Fl.cxx:(.text$__tcf_1+0x83): undefined reference to `RestoreDC@8'
etc ...

当我尝试链接其他FLTK库时,结果是一样的。任何人都可以帮我吗?

我使用Windows中的gcc,使用MingW。

1 个答案:

答案 0 :(得分:1)

要解决此类问题,必须从fltk-config脚本中获取帮助。因此,应该向编译器添加行fltk-config --ldflags以避免链接器错误。请务必在此命令周围使用“`”符号,因为这是脚本,应该执行它。