Я работаю над библиотекой, которую я использую в других моих проектах, и у меня есть следующий заголовочный файл:
#pragma once
#include <iostream>
#include <map>
#include "my_library/core/Structures.h"
namespace My_Library
{
namespace NodeReaders
{
namespace HumanReadable
{
char charBuffer[256];
unsigned int uintBuffer;
unsigned long long microsecondBuffer;
unsigned int getNextUInt(std::istream & is)
{
/// Implementation
}
unsigned long getNextMicroseconds(std::istream & is)
{
/// Implementation
}
...
}; // namespace HumanReadable
}; // namespace NodeReaders
}; // namespace My_Library
Я пытался включить его в несколько разных исходных файлов,но всякий раз, когда я это делаю, я получаю сообщение об ошибке, что для каждой из использованных функций, определенных здесь, есть повторяющийся символ.Почему я получаю ошибку дублированного символа?Разве #pragma once
не должен сделать так, чтобы этого не произошло?
Редактировать: Отрывок сообщения об ошибке:
duplicate symbol __ZN8My_Library11NodeReaders13HumanReadable10uintBufferE in:
obj/project/Debug/ParseDriver.o
obj/project/Debug/ParseService.o