Форум русскоязычного сообщества Ubuntu


Автор Тема: Проблема компиляции .срр файла с использованием FLTK.  (Прочитано 2220 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tobyan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
  • C++.
    • Просмотр профиля
Собственно, сам код. Стандартный, взятый в качестве теста для библиотеки FLTK с сайта производителя.
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>

int main(int argc, char **argv) {
  Fl_Window *window = new Fl_Window(340,180);
  Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");
  box->box(FL_UP_BOX);
  box->labelfont(FL_BOLD+FL_ITALIC);
  box->labelsize(36);
  box->labeltype(FL_SHADOW_LABEL);
  window->end();
  window->show(argc, argv);
  return Fl::run();
}

Компилирую...

/home/tobyan/TEST/FLTK_TEST.o||In function `main':|
FLTK_TEST.cpp|| undefined reference to `Fl_Window::Fl_Window(int, int, char const*)'|
FLTK_TEST.cpp|| undefined reference to `fl_define_FL_SHADOW_LABEL()'|
FLTK_TEST.cpp|| undefined reference to `Fl_Group::end()'|
FLTK_TEST.cpp|| undefined reference to `Fl_Window::show(int, char**)'|
FLTK_TEST.cpp|| undefined reference to `Fl::run()'|
/home/tobyan/TEST/FLTK_TEST.o||In function `Fl_Box::Fl_Box(int, int, int, int, char const*)':|
FLTK_TEST.cpp:(.text._ZN6Fl_BoxC2EiiiiPKc[_ZN6Fl_BoxC5EiiiiPKc]+0x30)||undefined reference to `Fl_Widget::Fl_Widget(int, int, int, int, char const*)'|
FLTK_TEST.cpp:(.text._ZN6Fl_BoxC2EiiiiPKc[_ZN6Fl_BoxC5EiiiiPKc]+0x39)||undefined reference to `vtable for Fl_Box'|
||=== Build finished: 7 errors, 0 warnings ===|

Прошу разъяснить в чем заключается проблема. Не понимаю почему, когда неоходимые значения обозначены явно, пишет, что они не обозначены вовсе.
Все необходимые приложения указанные в Readme установил. Версия fltk_1.3.3. Использую среду Code::Block.
Спасибо.
« Последнее редактирование: 24 Октябрь 2011, 21:27:39 от Tobyan »

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
а расширения заголовочных файлов можно с большой буквы писать?
попробуйте указать путь к заголовочным файлам при компиляции программы. -L путь к библиотеке

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
а расширения заголовочных файлов можно с большой буквы писать?

Писать нужно так как в системе этот файл называется, заглавные ис трочные буквы должны совпадать. Виндовс не обращает внимания на регистр, Линукс обращает. Т.е. файлы Темп.цпп и темп.цпп в Виндовсе будут восприниматься как один файл, а в Линуксе как разные.

попробуйте указать путь к заголовочным файлам при компиляции программы

С компиляцией все нормально, падает линкер. Заголовочные файлы нашлись, нет библиотеки.


Пользователь решил продолжить мысль 25 Октябрь 2011, 08:32:47:
Не понимаю почему, когда неоходимые значения обозначены явно, пишет, что они не обозначены вовсе.
Погугли на тему undefined reference to.

подсказка

-L путь к библиотеке
« Последнее редактирование: 25 Октябрь 2011, 08:35:31 от mkarasik »

Оффлайн Tobyan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
  • C++.
    • Просмотр профиля
Спасибо всем, проблема решена. Что делал:
1. Для начала этот самый FLTK установил, предварительно по README установив необходимое обеспечение(Это еще в самом начале.)
2. Затем в Code::Block необходимо создать проект и настроить его, но с пустым проектом было трудновато и вовсе не получилось.
3. И тут мне на глаза попадается то, что при инсталляции в FLTK библиотеки, в списке проектов появляется FLTK проект, с готовыми настройками.
4. Обрадовался, протестил всё работает. Ошибок нет.
 Ещё раз всем спасибо.

Осталось только, на будущее, посмотреть в настройках проэкта как да чего.  :)
« Последнее редактирование: 26 Октябрь 2011, 16:51:00 от Tobyan »

 

Страница сгенерирована за 0.079 секунд. Запросов: 26.