Здраствуйте, при компиляции кода ниже, выходят следующие ошибки:
/tmp/cc0seV1N.o: In function Arc::Arc(Point, int, int, int, int)':
Test.cpp:(.text._ZN3ArcC2E5Pointiiii[_ZN3ArcC5E5Pointiiii]+0x37): undefined reference tovtable for Arc'
/tmp/cc0seV1N.o: In function Arc::~Arc()':
Test.cpp:(.text._ZN3ArcD2Ev[_ZN3ArcD5Ev]+0xf): undefined reference tovtable for Arc'
collect2: error: ld returned 1 exit status
Код:
Test.cpp:
#include "Arc.h"
#include "../../../../utility/Graph.h"
#include "../../../../utility/Simple_window.h"
using namespace Graph_lib;
int main()
{
Simple_window win{Point{100, 100}, 800, 600, "Exercise 1"};
Arc arc{Point{500, 300}, 50, 20, 30, 80};
win.attach(arc);
win.wait_for_button();
}
Arc.h:
#ifndef MY_ARC_H
#define MY_ARC_H
#include "../../../../utility/Graph.h"
class Arc : public Graph_lib::Ellipse
{
public:
Arc(Point p, int ww, int hh, int a1, int a2) : Graph_lib::Ellipse{p, ww, hh}, a1{a1}, a2{a2} {}
void draw_lines() const;
~Arc() {}
private:
int a1;
int a2;
};
#endif //MY_ARC_H
Arc.cpp:
#include "Arc.h"
using namespace Graph_lib;
void Arc::draw_lines() const
{
if (fill_color().visibility()) { // fill
fl_color(fill_color().as_int());
fl_pie(point(0).x,point(0).y,this->major()+this->major()-1, this->minor()+this->minor()-1,
a1, a2);
fl_color(color().as_int()); // reset color
}
if (color().visibility()) {
fl_color(color().as_int());
fl_arc(point(0).x,point(0).y,this->major()+this->major(),this->minor()+this->minor(), a1, a2);
}
}
Компилирую на линукс минт. Компилятор g++ 7.4.0. Используется библиотека FLTK и файлы (Graph, Simple_window и все что там внутри подключается) из учебника Страуструпа "Программирование и практика с использованием C++". Найти их можно здесь: http://www.stroustrup.com/Programming/PPP2code/ Команда для компилирования: g++ -I/usr/local/include -I/usr/local/include/FL/images -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -o 'main.out' $1 utility/Graph.cpp utility/GUI.cpp utility/Simple_window.cpp utility/Window.cpp /usr/local/lib/libfltk.a /usr/local/lib/libfltk_images.a /usr/local/lib/libfltk_forms.a /usr/local/lib/libfltk_jpeg.a -lXrender -lXft -lfontconfig -lpthread -ldl -lm -lX11
ArcdArc.cpp– user7860670 Sep 02 '19 at 14:05$1при вызове команды компиляции? Приведите реальную команду компиляции, так, как она выглядит в момент вызова. Я подозреваю, что у васArc.cppвообще не участвует в компиляции. – AnT stands with Russia Sep 02 '19 at 14:12D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -o 'main.out' Part_2/Chapter_13/Exercises/Exercise_1/Test.cpp utility/Graph.cpp utility/GUI.cpp utility/Simple_window.cpp utility/Window.cpp /usr/local/lib/libfltk.a /usr/local/lib/libfltk_images.a /usr/local/lib/libfltk_forms.a /usr/local/lib/libfltk_jpeg.a -lXrender -lXft -lfontconfig -lpthread -ldl -lm -lX11
– Cheshire Cat Sep 02 '19 at 14:19