Дублирующиеся символы только для повышения jsonC++

Программы на C++. Форум разработчиков
Anonymous
 Дублирующиеся символы только для повышения json

Сообщение Anonymous »

Я работаю над приложением, которое использует клиенты Boost HTTP и WebSocket. Мне нужно проанализировать ответ json, отправленный сервером, и для этого я использую boost/json. У меня есть клиентский класс HTTP и клиентский класс веб-сокета, которые используются в других классах, например классах A, B, C, которые включаются в основной файл. Компиляция каждого файла прошла успешно, но при связывании всего вместе я получаю ошибки типа:
Файлы следующие:
HTTPClient.hpp< /p>

Код: Выделить всё

#ifndef HTTPCLIENT_HPP
#define HTTPCLIENT_HPP
#include 

class HTTPClient.hpp {
public:
CBClient(boost::json json_val);
}
# endif
HTTPClient.cpp

Код: Выделить всё

#include 
#include 

HTTPClient::CBClient(boost::json json_val) {
// uses boost::ssl somewhere here
}
WebsocketClient.hpp

Код: Выделить всё

#ifndef WEBSOCKETCLIENT_HPP
#define WEBSOCKETCLIENT_HPP
#include 

class WebsocketClient.hpp {
public:
CBClient(boost::json json_val);
}
# endif
WebsocketClient.cpp

Код: Выделить всё

#include 
#include 
#include 

WebsocketClient::CBClient(boost::json json_val) {
// uses boost::ssl here
// uses jwt here
}
A.hpp

Код: Выделить всё

#ifndef A_HPP
#define A_HPP
#include 

class A.hpp {
public:
A();
do_something();
private:
WebsocketClient ws;
}
# endif
B.hpp

Код: Выделить всё

#ifndef B_HPP
#define B_HPP
#include 

class B.hpp {
public:
B();
do_something_else();
private:
HTTPClient client;
}
# endif
Util.hpp

Код: Выделить всё

#ifndef UTIL_HPP
#define UTIL_HPP

// util functions
class Util {
public:
Util();
foo();
}

# endif
Util.cpp

Код: Выделить всё

#include 

Util::Util() {

}

Util::foo() {

}
# endif
main.cpp

Код: Выделить всё

#include 

Подробнее здесь: [url]https://stackoverflow.com/questions/79059922/duplicate-symbols-only-for-boost-json[/url]

Вернуться в «C++»