powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / ошибки компоновщика LNK2005 и LNK2019
7 сообщений из 7, страница 1 из 1
ошибки компоновщика LNK2005 и LNK2019
    #38188939
SeerRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
При построении проекта получаю следующие ошибки:

1>Pixel.obj : error LNK2005: "public: __thiscall Pixel::Pixel(class Pixel const &)" (??0Pixel@@QAE@ABV0@@Z) уже определен в usePixel.obj
1>usePixel.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Pixel::Move(int,int)" (?Move@Pixel@@QAEXHH@Z) в функции "void __cdecl test(void)" (?test@@YAXXZ)
1>usePixel.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall Pixel::Print(char *,char *)const " (?Print@Pixel@@QBEXPAD0@Z) в функции "void __cdecl test(void)" (?test@@YAXXZ)
1>usePixel.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: double __thiscall Pixel::Dist(class Pixel const &)const " (?Dist@Pixel@@QBENABV1@@Z) в функции "void __cdecl test(void)" (?test@@YAXXZ)

по 1 - есть класс Point и класс Pixel, для которого Point является базовым. Определяю конструкторы копирования для Point и для Pixel.
по 2 в классе Pixel не переопределяю функции Move, Print и Dist ни в Pixel.h, ни в Pixel.cpp - функционал Point устраивает.

Код:

Point.h:
#define POINT_H

#include<iostream>

class Point
{
int x,y;
public:
...
Point(int =0, int =0);
Point(const Point &);
~Point();
};

#endif

Point.cpp

#include<iostream>
#include<cmath>

#include"point.h"

...
Point::Point(const Point &other)
{
SetX(other.x);
SetY(other.y);
}
...

Pixel.h
#ifndef PIXEL_H
#define PIXEL_H

#include "point.h"
class Pixel :
public Point
{
public:
...
Pixel(const Pixel & _p);
...
private:
Color c;
};

#endif

Pixel.cpp

#include<iostream>

#include "Pixel.h"
...
Pixel::Pixel(const Pixel & _p)
: Point(_p), c(_p.c)
{}
...

Как решить эти проблемы?
...
Рейтинг: 0 / 0
ошибки компоновщика LNK2005 и LNK2019
    #38189114
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeerRus,

1>Pixel.obj : error LNK2005: "public: __thiscall Pixel::Pixel(class Pixel const &)" (??0Pixel@@QAE@ABV0@@Z) уже определен в usePixel.obj

а что за usePixel? Что-то ты не договариваешь.
...
Рейтинг: 0 / 0
ошибки компоновщика LNK2005 и LNK2019
    #38189172
SeerRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#include"Point.h"
#include"Pixel.h"

using std::cout;
using std::endl;

void test ()
{
	Pixel a(10,20,Pixel::green), b=a;
	a.Move(15,0);
	a.SetY(40);
	b.SetColor(Pixel::red);
	a.Print("a.p = ","\n");
	b.Print("b.p = ","\n");
	cout << "Dist (a,b) = " << a.Dist(b) << endl;
}

int main()
{
	test();
	system("pause");
}
...
Рейтинг: 0 / 0
ошибки компоновщика LNK2005 и LNK2019
    #38189229
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeerRus,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
// Point.h
#ifndef POINT_H  // это пушкин должен был поставить?
#define POINT_H

#include<iostream>

class Point
{
	int x,y;
public:
...
	Point(int =0, int =0);
	Point(const Point &);
	~Point();
};

#endif
...
Рейтинг: 0 / 0
ошибки компоновщика LNK2005 и LNK2019
    #38189241
SeerRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ifndef есть, при копировании в описание ошибки забыл её.
При отсутствующей строке выдает ошибку о непарном endif и до компоновщика не доходит.
...
Рейтинг: 0 / 0
ошибки компоновщика LNK2005 и LNK2019
    #38189504
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeerRus,

запакуй свой проект и положи куда-нибудь - быстрее будет, чем вытигивать из тебя информацию.
...
Рейтинг: 0 / 0
ошибки компоновщика LNK2005 и LNK2019
    #38189932
SeerRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос решён, спасибо за участие.
usePoint.cpp не был скопирован из другого (старого) проекта, как собирался изначально, а использовался оттуда. Перенес копию в этот проект, включил её и всё заработало.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / ошибки компоновщика LNK2005 и LNK2019
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]