2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как устранить ошибку LNK2005 : MS VS 2017
Сообщение22.03.2018, 18:57 
Аватара пользователя
Вставил класс из другого проекта. получил следующее на часть переменных:
Код:
Error   LNK2005   "int sigmaix" (?sigmaix@@3HA) already defined in EDP.obj

Переменные только этого класса, и EDP.obj - компилируется всего из двух файлов ххх.cpp и ххх.h
Правда, я сначала создал класс из темплейта и затем копипаст. Но все равно почему появляется дублирование?

 
 
 
 Re: Как устранить ошибку LNK2005 : MS VS 2017
Сообщение22.03.2018, 19:13 
MWE в студию.

Навскидку такое возможно, если у Вас эти (глобальные) переменные попросту определены в заголовочном файле, который подключается в несколько cpp-файлов.

 
 
 
 Re: Как устранить ошибку LNK2005 : MS VS 2017
Сообщение22.03.2018, 19:42 
Аватара пользователя
Если честно, то я не профессиональный программист.
Поэтому проекты иногда весьма кривые. Первоначальный проект был специально упрощен так, чтобы исключить классы. Более того, кроме основного cpp файла практически все остальные кодовые программы и определялись и писались в h файлах.
Но именно этот класс раньше, лет 6 назад вполне себе работал. Как может его h файл попасть куда-то еще, не знаю, тем более ошибка прямо указывает, что повторное переопределение исключительно в EDP.obj полученного из EDP.cpp хотя сейчас посмотрю...
Что до программы
Код:
       EDP *edp = NULL;
       edp =  new EDP(3, Img_ST, X, Y, L);
      edp->Intermed(dispL, dispR);


пока единственное ссылка на класс в головном файле. Там же
Код:
#include "EDP.h"

 
 
 
 Re: Как устранить ошибку LNK2005 : MS VS 2017
Сообщение22.03.2018, 19:53 
Аватара пользователя
Если Вы никакой специфики не напишете, то Вам никто не сможет помочь. Пока даже непонятно, что такое sigmaix.

 
 
 
 Re: Как устранить ошибку LNK2005 : MS VS 2017
Сообщение22.03.2018, 19:56 
Аватара пользователя
Вот все ошибки. Странно, что всего 14, переменных больше.
Код:
Severity   Code   Description   Project   File   Line   Suppression State   
Error   LNK2005   "int m_nPixels" (?m_nPixels@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int sigmai" (?sigmai@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int m_width" (?m_width@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int sigmaX" (?sigmaX@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int sigmai2" (?sigmai2@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "double * TBi_ws" (?TBi_ws@@3PANA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int m_height" (?m_height@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "double * Bi_ws" (?Bi_ws@@3PANA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int sigmaY" (?sigmaY@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int sigmaiy" (?sigmaiy@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK2005   "int sigmaix" (?sigmaix@@3HA) already defined in EDP.obj   segment   C:\Users\\OneDrive\ST_intr\segment\segment.obj   1   
Error   LNK1169   one or more multiply defined symbols found   segment   C:\Users\\OneDrive\ST_intr\Release\segment.exe   1   

 
 
 
 Re: Как устранить ошибку LNK2005 : MS VS 2017
Сообщение22.03.2018, 19:57 
Аватара пользователя
Как переменные объявлены-то?

 
 
 
 Re: Как устранить ошибку LNK2005 : MS VS 2017
Сообщение22.03.2018, 19:58 
Аватара пользователя
Xaositect в сообщении #1299108 писал(а):
Если Вы никакой специфики не напишете, то Вам никто не сможет помочь. Пока даже непонятно, что такое sigmaix.

Это все переменные. Даже не программы. Может быть где-то копировал куски этого кода...
Но в это случае это точно не класс.

-- Чт мар 22, 2018 21:00:51 --

Xaositect в сообщении #1299110 писал(а):
Как переменные объявлены-то?

В классе. И в конструкторе.
Сам класс я только что прицепил к текущему поекту, взяв из старого.

-- Чт мар 22, 2018 21:15:04 --

Большое спасибо за внимание. Вроде бы нашел. Все таки давно в один из своих хедеров копировал некоторые программы частично, и поэтому определил эти переменные , как глобальные.
Мои извинения. :)

-- Чт мар 22, 2018 21:15:09 --

Большое спасибо за внимание. Вроде бы нашел. Все таки давно в один из своих хедеров копировал некоторые программы частично, и поэтому определил эти переменные , как глобальные.
Мои извинения. :)

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group