Форум программистов, компьютерный форум CyberForum.ru

Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
viktorius
2 / 2 / 2
Регистрация: 24.02.2013
Сообщений: 105
04.03.2014, 17:03     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) #1
Изучаю программирование с графикой. У меня проблема выдает следующее сообщения ошибок компиляции

Код
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: static int __cdecl Fl::run(void)" (?run@Fl@@SAHXZ) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Fl_Window::show(int,char * *)" (?show@Fl_Window@@QAEXHPAPAD@Z) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Fl_Group::end(void)" (?end@Fl_Group@@QAEXXZ) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "enum Fl_Labeltype __cdecl fl_define_FL_SHADOW_LABEL(void)" (?fl_define_FL_SHADOW_LABEL@@YA?AW4Fl_Labeltype@@XZ) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Fl_Box::Fl_Box(int,int,int,int,char const *)" (??0Fl_Box@@QAE@HHHHPBD@Z) в функции _main
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Fl_Window::Fl_Window(int,int,char const *)" (??0Fl_Window@@QAE@HHPBD@Z) в функции _main
1>C:\Программирование\Си++ практик\Form 1\Debug\Form 1.exe : fatal error LNK1120: 6 неразрешенных внешних элементов
вот код программы который должен компилироваться
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <Fl.H>
#include <Fl_Window.H>
#include <Fl_Box.H>
#include <iostream>
 
int main(int argc, char **argv)
{
    Fl_Window *window = new Fl_Window(300,180);
    Fl_Box *box = new Fl_Box(20,40,260,100,"Hello, World!");
    box->box(FL_UP_BOX);
    box->labelsize(36);
    box->labelfont(FL_BOLD+FL_ITALIC);
    box->labeltype(FL_SHADOW_LABEL);
    window->end();
    window->show(argc, argv);
    return Fl::run();
}
предварительно в параметрах VS указал расположение h и lib файлов библиотеки. У меня VS 2008 и fltk 1.3.2

Подскажите в чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 17:03     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ)
Посмотрите здесь:

C++ Ошибка - ссылка на неразрешенный внешний символ
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ C++
C++ Ошибка линковки: ссылка на неразрешенный внешний символ
Ошибка error LNK2019: ссылка на неразрешенный внешний символ C++
Ошибка линковщика LNK2019: ссылка на неразрешенный внешний символ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
viktorius
2 / 2 / 2
Регистрация: 24.02.2013
Сообщений: 105
16.03.2014, 19:53  [ТС]     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) #21
Решил вернуться к старой теме библиотеку fltk скомпилировал, пути прописал, Lib подключил, ранее представленный мною код скомпилировался успешно.
Но при попытке скомпилировать пример из книги Страуструпа гл 12 ст.435

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma comment(lib, "fltk.lib")
#pragma comment(lib, "wsock32.lib")
#pragma comment(lib, "comctl32.lib")
#include "c:/Программирование/Си++ практик/GUI/Simple_window.h"
#include "c:/Программирование/Си++ практик/GUI/Graph.h"
 
int main()
{
    using namespace Graph_lib;
    Point t1(100, 100);
    Simple_window win(t1, 600, 400, "ddd");
    Polygon poly;
    poly.add(Point(300,200));
    poly.add(Point(350,100));
    poly.add(Point(400,200));
    poly.set_color(Color::red);
    win.attach(poly);
    win.wait_for_button();
}
выдает ошибку

C++
1
2
3
4
5
6
7
8
9
10
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: bool __thiscall Simple_window::wait_for_button(void)" (?wait_for_button@Simple_window@@QAE_NXZ) в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Graph_lib::Polygon::add(struct Point)" (?add@Polygon@Graph_lib@@QAEXUPoint@@@Z) в функции _main
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Simple_window::Simple_window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Simple_window@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) в функции _main
main.obj : error LNK2001: неразрешенный внешний символ ""protected: virtual void __thiscall Graph_lib::Window::draw(void)" (?draw@Window@Graph_lib@@MAEXXZ)"
main.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall Graph_lib::Shape::move(int,int)" (?move@Shape@Graph_lib@@UAEXHH@Z)"
main.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall Graph_lib::Polygon::draw_lines(void)const " (?draw_lines@Polygon@Graph_lib@@UBEXXZ)"
main.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall Graph_lib::Closed_polyline::draw_lines(void)const " (?draw_lines@Closed_polyline@Graph_lib@@UBEXXZ)"
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "protected: __thiscall Graph_lib::Shape::Shape(void)" (??0Shape@Graph_lib@@IAE@XZ) в функции "public: __thiscall Graph_lib::Open_polyline::Open_polyline(void)" (??0Open_polyline@Graph_lib@@QAE@XZ)
main.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall Graph_lib::Open_polyline::draw_lines(void)const " (?draw_lines@Open_polyline@Graph_lib@@UBEXXZ)"
main.obj : error LNK2001: неразрешенный внешний символ ""protected: virtual void __thiscall Graph_lib::Shape::draw_lines(void)const " (?draw_lines@Shape@Graph_lib@@MBEXXZ)"
Подскажите пожалуйста как в данном случае мне определить какого файла или библиотеки не хватает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
16.03.2014, 20:05     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) #22
Цитата Сообщение от viktorius Посмотреть сообщение
Подскажите пожалуйста как в данном случае мне определить какого файла или библиотеки не хватает?
Надо добавить Simple_window.cpp и Graph.cpp в проект.
viktorius
2 / 2 / 2
Регистрация: 24.02.2013
Сообщений: 105
16.03.2014, 20:28  [ТС]     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) #23
добавил, теперь вот так

C++
1
2
3
4
5
6
7
8
Graph.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Fl_GIF_Image::Fl_GIF_Image(char const *)" (??0Fl_GIF_Image@@QAE@PBD@Z) в функции "public: __thiscall Graph_lib::Image::Image(struct Point,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,enum Graph_lib::Suffix::Encoding)" (??0Image@Graph_lib@@QAE@UPoint@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4Encoding@Suffix@1@@Z)
Graph.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Fl_JPEG_Image::Fl_JPEG_Image(char const *)" (??0Fl_JPEG_Image@@QAE@PBD@Z) в функции "public: __thiscall Graph_lib::Image::Image(struct Point,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,enum Graph_lib::Suffix::Encoding)" (??0Image@Graph_lib@@QAE@UPoint@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4Encoding@Suffix@1@@Z)
main.obj : error LNK2001: неразрешенный внешний символ ""protected: virtual void __thiscall Graph_lib::Window::draw(void)" (?draw@Window@Graph_lib@@MAEXXZ)"
Simple_window.obj : error LNK2001: неразрешенный внешний символ ""protected: virtual void __thiscall Graph_lib::Window::draw(void)" (?draw@Window@Graph_lib@@MAEXXZ)"
Simple_window.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Graph_lib::Window::attach(class Graph_lib::Widget &)" (?attach@Window@Graph_lib@@QAEXAAVWidget@2@@Z) в функции "public: __thiscall Simple_window::Simple_window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Simple_window@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
Simple_window.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Graph_lib::Window::Window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Window@Graph_lib@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) в функции "public: __thiscall Simple_window::Simple_window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Simple_window@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
Simple_window.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall Graph_lib::Button::attach(class Graph_lib::Window &)" (?attach@Button@Graph_lib@@UAEXAAVWindow@2@@Z)"
C:\Программирование\Си++ практик\form 5\Debug\form 5.exe : fatal error LNK1120: 6 неразрешенных внешних элементов
Добавлено через 3 минуты
включил все либ файлы через директиву прагма, теперь вот так

C++
1
2
3
4
5
6
main.obj : error LNK2001: неразрешенный внешний символ ""protected: virtual void __thiscall Graph_lib::Window::draw(void)" (?draw@Window@Graph_lib@@MAEXXZ)"
Simple_window.obj : error LNK2001: неразрешенный внешний символ ""protected: virtual void __thiscall Graph_lib::Window::draw(void)" (?draw@Window@Graph_lib@@MAEXXZ)"
Simple_window.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Graph_lib::Window::attach(class Graph_lib::Widget &)" (?attach@Window@Graph_lib@@QAEXAAVWidget@2@@Z) в функции "public: __thiscall Simple_window::Simple_window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Simple_window@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
Simple_window.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Graph_lib::Window::Window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Window@Graph_lib@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) в функции "public: __thiscall Simple_window::Simple_window(struct Point,int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Simple_window@@QAE@UPoint@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
Simple_window.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall Graph_lib::Button::attach(class Graph_lib::Window &)" (?attach@Button@Graph_lib@@UAEXAAVWindow@2@@Z)"
C:\Программирование\Си++ практик\form 5\Debug\form 5.exe : fatal error LNK1120: 4 неразрешенных внешних элементов
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
16.03.2014, 20:55     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) #24
viktorius, не надо все lib. Надо понять зачем это все делается.
Включить в проект надо еще Window.cpp и GUI.cpp.
У тебя отсутствует реализация классов из примера. Ее надо добавить, смотришь определение функции в этих файлах и определяешь какой надо подключить...
viktorius
2 / 2 / 2
Регистрация: 24.02.2013
Сообщений: 105
17.03.2014, 08:31  [ТС]     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) #25
Все теперь работает. А как вы определили что именно этих реализаций не хватает?

Добавлено через 4 минуты
чтоб мне больше таких вопросов не задавать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2014, 13:08     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ)
Еще ссылки по теме:

C++ Ошибка компоновщика: ссылка на неразрешенный внешний символ
Ошибка: ссылка на неразрешенный внешний символ C++
C++ Ошибка LNK2019: ссылка на неразрешенный внешний символ

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
17.03.2014, 13:08     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ) #26
viktorius, прочитал сообщение об ошибке и посмотрел в каком файле лежит реализация... все файлы лежат на сайте Страуструпа, там и смотрел.
Yandex
Объявления
17.03.2014, 13:08     Ошибка с библиотекой fltk (Ссылка на неразрешенный внешний символ)
Ответ Создать тему
Опции темы

Текущее время: 06:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru