• 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

Object Storage Arubacloud
0 głosów
101 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,590 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 238 wizyt
pytanie zadane 6 grudnia 2019 w C i C++ przez Gildin1_2 Gaduła (3,060 p.)
0 głosów
2 odpowiedzi 736 wizyt
pytanie zadane 1 grudnia 2019 w C i C++ przez reaktywny Nałogowiec (40,990 p.)
0 głosów
1 odpowiedź 1,091 wizyt
pytanie zadane 16 lipca 2017 w C i C++ przez Programeł Gaduła (3,500 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...