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?
 
     
    