2015-10-14 3 views
3

Я работаю над принципами и практиками Страуструпа, используя C++. Я пытаюсь собрать следующую программу.Компиляция FLTK с g ++

#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,"Hey, I mean, Hello, World!"); 
    window.show(); 
    return Fl::run(); 
} 

Я попытался компиляции с g++ -std=c++11 trial.cpp -o trial, но затем он бросил следующую ошибку

/tmp/ccaLRS7L.o: In function `main': 
trial.cpp:(.text+0x26): undefined reference to `Fl_Window::Fl_Window(int, int, char const*)' 
trial.cpp:(.text+0x50): undefined reference to `Fl_Box::Fl_Box(int, int, int, int, char const*)' 
trial.cpp:(.text+0x5f): undefined reference to `Fl_Window::show()' 
trial.cpp:(.text+0x64): undefined reference to `Fl::run()' 
trial.cpp:(.text+0x84): undefined reference to `Fl_Window::~Fl_Window()' 
trial.cpp:(.text+0xae): undefined reference to `Fl_Window::~Fl_Window()' 
/tmp/ccaLRS7L.o: In function `Fl_Box::~Fl_Box()': 
trial.cpp:(.text._ZN6Fl_BoxD2Ev[_ZN6Fl_BoxD5Ev]+0x13): undefined reference to `vtable for Fl_Box' 
trial.cpp:(.text._ZN6Fl_BoxD2Ev[_ZN6Fl_BoxD5Ev]+0x1f): undefined reference to `Fl_Widget::~Fl_Widget()' 
collect2: error: ld returned 1 exit status 

Я установил FLTK версии 1.3 от терминала. Я запускаю Linux mint 17 на своем компьютере. Как скомпилировать этот код?

ответ

6

Вы должны связать его с библиотеками:

g++ -std=c++11 trial.cpp -lfltk -o trial 

Для вашего кода этой библиотеки достаточно, но в зависимости от того, каких классов вы используете вы, возможно, необходимо добавить: -lfltk_forms -lfltk_gl -lfltk_images также.

Вы также можете использовать fltk-config, как указано here:

g++ -std=c++11 `fltk-config --cxxflags` trial.cpp `fltk-config --ldflags` -o trial 

Примечание: важно иметь связывающие параметры (-l) после ваших файлов кода (CPP и включает в себя), в противном случае вы получаете ошибки компиляции.

+0

Это работает, спасибо за ссылку. – dpk

Смежные вопросы