Неопределенные справочные ошибки в моем проекте C ++: отсутствует ссылка на методы клиента в компиляции сервера [DuplicaC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Неопределенные справочные ошибки в моем проекте C ++: отсутствует ссылка на методы клиента в компиляции сервера [Duplica

Сообщение Anonymous »

Я сталкиваюсь с ошибкой линкера во время компиляции моего проекта C ++. В частности, я получаю ошибки «неопределенные ссылки», связанные с несколькими методами в моем клиентском классе при составлении кода сервера.
Вот краткий обзор моего проекта: < Br /> Проект-это приложение клиентского сервера, где класс сервера общается с клиентским классом. Класс ServerManager управляет подключенными клиентами.
Проект использует MakeFile для создания исполняемых файлов клиента и сервера. >: < /p>
/usr/bin/ld: tcp_server/main.o: in function `main::{lambda()#1}::operator()() const':
main.cpp:(.text+0x1a): undefined reference to `Client::communicate()'
/usr/bin/ld: tcp_server/main.o: in function `main':
main.cpp:(.text+0x1db): undefined reference to `Client::setServer(Server&)'
/usr/bin/ld: tcp_server/Server.o: in function `Server::broadcast(Client*, char*)':
Server.cpp:(.text+0x1d3): undefined reference to `Client::getName[abi:cxx11]()'
/usr/bin/ld: Server.cpp:(.text+0x1e2): undefined reference to `Client::getSocket()'
/usr/bin/ld: tcp_server/ServerManager.o: in function `ServerManager::addClient(std::__cxx11::basic_string const&, int const&)':
ServerManager.cpp:(.text+0x169): undefined reference to `Client::Client(std::__cxx11::basic_string, int)'
collect2: error: ld returned 1 exit status
make: *** [Makefile:23: server] Error 1

Обзор кода :
client.h:
//
// Created by notro on 1/28/25.
//

#ifndef CLIENT_H
#define CLIENT_H
#include
#include
#include

#include "Server.h"

class Server;

class Client {

public:
Client(std::string name, int sock);

std::string getName();

int getSocket();

void setServer(Server& server);

void communicate();

private:
Server* server = nullptr;
std::string name;
int sock;

};

#endif //CLIENT_H


client.cpp:

//
// Created by notro on 1/25/25.
//

#include
#include
#include
#include
#include
#include

#include "ServerManager.h"
#include "Client.h"

Client::Client(std::string name, int sock) : name(name), sock(sock) {}

std::string Client::getName() {
return this->name;
}

int Client::getSocket() {
return this->sock;
}

void Client::setServer(Server& server) {
this->server = &server;
}

void Client::communicate() {
std::string clientName = this->name;
char buffer[1024];

while (true) {
ssize_t received = recv(this->sock, buffer, sizeof(buffer), 0);
if (received == 0) {
std::cout

Подробнее здесь: https://stackoverflow.com/questions/794 ... methods-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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