#include "mainwindow.h"#include <MATRIX/matrix.h>MainWindow::MainWindow(QWidget *parent) : QWidget(parent){prevPoint.setSize(4);center.setSize(4);currPoint.setSize(4);m.mObject[0][0]=50;m.mObject[0][1]=50;m.mObject[1][0]=100;m.mObject[1][1]=50;m.mObject[2][0]=100;m.mObject[2][1]=10;m.mObject[3][0]=50;m.mObject[3][1]=10;m.mObject[0][3]=1;m.mObject[1][3]=1;m.mObject[2][3]=1;m.mObject[3][3]=1;center[0]=75;center[1]=30;center[2]=0;center[3]=1;m.Init_mchangecoord(400);QPointF point(1,1);currPoint=m.Change_coord(point);}//...........
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <MATRIX/matrix.h>#include <QtGui>class MainWindow : public QWidget{ Q_OBJECTpublic: MainWindow(QWidget *parent = 0); ~MainWindow(); Main_matrix_class m; CVector center; CVector prevPoint, currPoint; void paintEvent(QPaintEvent*); void mousePressEvent(QMouseEvent* mouse); void mouseReleaseEvent(QMouseEvent* mouse); void mouseMoveEvent(QMouseEvent* mouse);};#endif // MAINWINDOW_H
// Библиотека matrix очень большая - вот ее фрагмент//..class CRow { protected: unsigned size; // кол-во элементов tableitem *items; // массив элементов public: // конструктор по умолчанию CRow(); // конструктор копирования CRow(const CRow& r); // конструктор с заданным размером CRow(unsigned uSize); // деструктор ~CRow(); // обнуление всех элементов void zero_items(); // кол-во элементов unsigned getSize() const { return size; } // изменение размера столбца, старые значения сохр, новые = 0 CRow& setSize(unsigned uSize); // оператор [], индекс от нуля tableitem& operator [](unsigned uIndex); const tableitem& operator [](unsigned uIndex) const; // оператор вывода //friend ostream& operator << (ostream& s, CRow& r); // оператор ввода //friend istream& operator >> (istream& s, CRow& r); // оператор присваивания CRow& operator = (const CRow& r);[move]<---И здесь компилятор находит ошибку undefined reference[/move] };/...
//.....CRow& CRow::operator = (const CRow& r) { setSize(r.size); for (unsigned x = 0; x < size; x++) items[x] = r.items[x]; return *this;};//....
s.right
Bash$ qmake -project$ правим "TEMPLATE=lib" в .pro$ qmake$ make
Running build steps for project Event_with_mouse...Configuration unchanged, skipping QMake step.Starting: /usr/bin/make -w make: Вход в каталог `/home/voipp/QTPROGRAMMS/Event_with_mouse'make: *** Нет правила для сборки цели `matrix.cpp', требуемой для `matrix.o'. Останов.make: Выход из каталога `/home/voipp/QTPROGRAMMS/Event_with_mouse'Exited with code 2.Error while building project Event_with_mouseWhen executing build step 'Make'
TARGET = Event_with_mouseTEMPLATE = appSOURCES += main.cpp \ mainwindow.cppSOURCES += matrix.cppHEADERS += mainwindow.hHEADERS += matrix.h
ЗЫ библиотека находится по адресу /home/voipp/qtsdk(каккие-то номера)/qt/include/MATRIXmain.o: main.cpp mainwindow.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cppmainwindow.o: mainwindow.cpp mainwindow.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cppmatrix.o: matrix.cpp matrix.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o matrix.o matrix.cppmoc_mainwindow.o: moc_mainwindow.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
WARNING: Failure to find: matrix.cppWARNING: Failure to find: matrix.hrm -f moc_mainwindow.cpprm -f main.o mainwindow.o matrix.o moc_mainwindow.orm -f *~ core *.coreg++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cppIn file included from main.cpp:2:mainwindow.h:3:27: error: MATRIX/matrix.h: No such file or directoryIn file included from main.cpp:2:mainwindow.h:13: ошибка: ‘Main_matrix_class’ не является именем типаmainwindow.h:14: ошибка: ‘CVector’ не является именем типаmainwindow.h:15: ошибка: ‘CVector’ не является именем типаmake: *** [main.o] Ошибка 1
WARNING: Failure to find: matrix.cppWARNING: Failure to find: matrix.h