I have a header file that contains an array of int
primes.h
#ifndef P_H
#define P_H
#include <inttypes.h>
uint64_t primes[] = {
7,
11,
};
#endif
in lib.h
file:
#include "primes.h"
lib.c
includes lib.h
in main.c
file:
#include "lib.h"
Then it causes error: duplicate symbol '_primes' in:
But if i move #include "primes.h"
into lib.c
, it works fine.
Why putting include in source and header can make the difference?