C Странное поведение, вероятно, двойных включенных файлов заголовков

#c

#c

Вопрос:

Это мой код, и он компилируется:

 #include "Config.h"
#include "Banner.h"
#include "AuthServer.h"
#include "Server/Service/Connection/ConnectMethod.h"


using namespace std;
using namespace Vibranium;

AuthServer::AuthServer(std::string ip, std::string port) : Server(ip, port){}

void AuthServer::HandleRpcs() {
    // Spawn a new CallData instance to serve new clients.
    new ConnectMethod(amp;connectionService_, cq_.get());
    void* tag;  // uniquely identifies a request.
    bool ok;
    while (true) {
        GPR_ASSERT(cq_->Next(amp;tag, amp;ok));
        GPR_ASSERT(ok);
        static_cast<ServiceMethod*>(tag)->Proceed();
    }
}

void AuthServer::RegisterServices(ServerBuilder amp;serverBuilder) {
    serverBuilder.RegisterService(amp;connectionService_);
}

int main() {
    //Don't mind Logger::FatalError it's just for coloring!
    Banner::Show(Logger::Error,"AuthServer");
    Config config("AuthServer");
    std::string defaultIp = "127.0.0.1";
    std::string defaultPort = "8080";


    try
    {
        AuthServer authServer(defaultIp, defaultPort);
        authServer.Run();
    }
    catch (std::exceptionamp; e)
    {
        std::cerr << "Exception: " << e.what() << "n";
    }

    return 0;
}
  

Однако, если я добавлю #include "Implementation/LoginDatabase.h" после #include "AuthServer.h"" его компиляции, если я добавлю его до #include "AuthServer.h" того, как получу следующую странную ошибку, проверьте это здесь, поскольку оно длинное -> Нажмите здесь!

Я приведу содержимое заголовочных файлов в GitHub Gists, чтобы сделать вопрос более читабельным. Надеюсь, вы не возражаете против этого.

Вот содержимое конфигурации.h LoginDatabase.h MySqlConnection.h баннер.h AuthServer.h ConnectMethod.h

Насколько я понимаю, скорее всего, у меня где-то есть двойной включенный файл заголовка или мои заголовочные щитки не работают?

В чем моя ошибка и как я могу ее исправить?

Комментарии:

1. Вы уверены #define INTERNAL , что нигде нет?

2. Нет во всех файлах проекта @Yksisarvinen

3. @Yksisarvinen пожалуйста, взгляните на обновленный вопрос if I add #include "Implementation/LoginDatabase.h" after #include "AuthServer.h"" it compiles, if I add it before #include "AuthServer.h"

4. Итак AuthServer.h , содержит что-то, что LoginDatabase.h нужно? Возможно LoginDatabase.h , следует включить AuthServer.h ?

5. Включите соответствующий код в сам вопрос, а не в ссылки. Я, например, не могу открыть их из-за политики моей компании.