fatal error LNK1169: one or more multiply defined symbols found

9173306234

cpp1:
#include "h.h"
void main
{
}

h.h
int g=0;
int gg
{
return 1;
}

и вот
Error 1 error LNK2005: "int __cdecl gg(void)" (?@YAHXZ) already defined in main.obj h.obj
Error 2 error LNK2005: "int g" (?@3HA) already defined in main.obj h.obj
Error 3 fatal error LNK1169: one or more multiply defined symbols found C:\Documents and Settings\user\My Documents\Visual Studio 2005\Projects\cpp1\Debug\cpp1.exe 1

просто интересно, почему

okunek

он у тебя за каким-то хреном .h файл скомпилировал

9173306234

он у тебя за каким-то хреном .h файл скомпилировал
ну это же нормально
всё по K&R'у

okunek

как это нормально?
не, конешно можно все что угодно подсовывать компилятору, ему пох, что ты пытаешься сделать...
но предполагается, что .h файлы используются в include-ах в тех файлах, которые, как предполагается, будут затем скомпилированы

evgen5555

У тебя этот .h в какой ветке проекта находится?

9173306234

там же где и cpp1.cpp

9173306234

как это нормально?
не, конешно можно все что угодно подсовывать компилятору, ему пох, что ты пытаешься сделать...
но предполагается, что .h файлы используются в include-ах в тех файлах, которые, как предполагается, будут затем скомпилированы
вот сунул h.h в
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include
всё в порядке
так почему в первом случае ошибки ?

okunek

удали его оттуда!

okunek

в Solution Explorer-e (помоему перетащи твой h.h из Sources в Headers

9173306234

в Solution Explorer-e (помоему перетащи твой h.h из Sources в Headers
не, не то
кстати щас удалил h.h из cpp1.cpp, скомпилировал, добавил опять, пошло
походу там какая-то хитрая инкрементальная компиляция

okunek

я пойду лучше скушаю что-нибудь, а то не завтракал совсем..............

9173306234

я пойду лучше скушаю что-нибудь, а то не завтракал совсем..............
ок. на сегодня ""Доброе утро, страна" закончилась

evgen5555

В следующий раз смотри BuildLog.htm

agaaaa

почему-то мне кажется, что ты забыл #ifdef'ы или какую-нить #pragma once

evgen5555

Могу даже сказать, почему.

Realist


Напиши что-ли, как компилируешь

stm8823636

precompiled headers выключи.

evgen5555

Да чё вы паритесь?
У чувака .h залетел в ветку Source Files, вот и всё.

okunek

Пусть помаятся... интересно читать иногда
Оставить комментарий
Имя или ник:
Комментарий: