Error LNK1169

0

Witam.
Piszę program do prostej obróbki obrazów, który ma być podzielony na 3 pliki: main.c (komunikacja z użytkownikiem), pgm.c (funkcje), pgm.h (deklaracje struktury i funkcji). Wyglądają one u mnie na ten moment następująco:
main.c

 
#define _CRT_SECURE_NO_WARNINGS
#include "pgm.c"
#include <stdio.h>
#include <stdlib.h>

int main()
{
      kod
}

pgm.c

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include "pgm.h"


void wczytajWykres()
{
       kod
}
 

pgm.h

 
#pragma once

struct Obraz
{
	char* nazwa;
	char* typPliku;
	int szerokosc;
	int wysokosc;
	int skalaSzarosci;
	int** piksele;
};

//wczytuje wykres
void wczytajWykres();

Podczas kompilowania dostaję dwa errory:
Error 2 error LNK1169: one or more multiply defined symbols found
Error 1 error LNK2005: _wczytajWykres already defined in main.obj
Nie mam pojęcia, co jest nie tak. Czytałem już na forum odpowiedzi na podobne pytania, jednak nadal nie potrafię sobie z tym poradzić. Dodam tylko, że pliki .c znajdują się w source files, zaś plik .h oczywiście w header

1

NIE includuje się plików *.c / *.cpp! W main powinieneś includować tylko pgm.h
Musisz oba pliki skompilować a potem scalić. Nie wiem czym to kompilujesz więc trudno dac konkretną odpowiedź. W gcc dałbyś po prostu
gcc main.c prm.c
i by się zrobiło samo.
Jeśli piszesz w jakimś IDE to wystarczy stworzyc projekt i dodać te pliki do projektu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1