• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

silnia w 3 plikach nie dziala w visualu

0 głosów
230 wizyt
pytanie zadane 18 października 2018 w C i C++ przez iksdek Użytkownik (550 p.)

Hej, napisałem taki kod w visualu, niestety nie chce się skompilować:

#include "Header.h"            //Source.cpp
#include "Silnia2.cpp"



void main()
{
	
	int x=1;

	while (x > 0) {

	cout << "wpisz liczbe: ";
	cin >> x;
	cout << "Wynik: " << silnia2(x) << endl;

	}
	
}







#ifndef Header_h//Header.h
#define Header_h
#include <iostream>
extern long silnia2(int n);
using namespace std;


#endif





#include "Header.h"//silnia2.cpp

extern long silnia2(int n) {


	long wynik;

	if (n == 1) {

		return 1;

	}
	std::cout << n << std::endl;
	wynik = n * silnia2(n - 1);

	return wynik;

}

Błędy:

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2005	"long __cdecl silnia2(int)" (?silnia2@@YAJH@Z) already defined in Silnia2.obj	Project1	C:\Users\alias\source\repos\Project1\Project1\Source.obj	1	


Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK1169	one or more multiply defined symbols found	Project1	C:\Users\alias\source\repos\Project1\Debug\Project1.exe	1	

 

Dodam, że przy kompilacji w codeblocks'ie przez gcc nie ma problemu.

komentarz 18 października 2018 przez PanRik Gaduła (4,510 p.)
pliki są w jednym (czyt. tym samym) projekcie?
komentarz 18 października 2018 przez iksdek Użytkownik (550 p.)
tak

1 odpowiedź

0 głosów
odpowiedź 18 października 2018 przez criss Mędrzec (172,570 p.)
wybrane 18 października 2018 przez iksdek
 
Najlepsza
#include "Silnia2.cpp"

Dlaczego to robisz? Wyrzuć tą linie - ona powoduje problem. includując silnia2.cpp do source.cpp sprawiasz, że silnia2 jest zdefiniowana dwukrotnie: w source.cpp oraz solnia2.cpp. Drugim rozwiązaniem problemu (nie polecam, chce ci tylko lepiej nakeślić na czym polega problem :P) byłoby wyrzucenie silnia2.cpp, żeby nie trafiał bezpośrednio do kompilacji (a jedynie jego zawartość wklejona #includem do source.cpp).

Podobne pytania

0 głosów
0 odpowiedzi 530 wizyt
pytanie zadane 6 grudnia 2019 w C i C++ przez Gildin1_2 Gaduła (3,060 p.)
0 głosów
2 odpowiedzi 1,513 wizyt
pytanie zadane 1 grudnia 2019 w C i C++ przez reaktywny Nałogowiec (46,230 p.)
0 głosów
1 odpowiedź 1,357 wizyt
pytanie zadane 16 lipca 2017 w C i C++ przez Programeł Gaduła (3,500 p.)

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...