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

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

Сообщение Anonymous »

Я сталкиваюсь с ошибкой линкера во время компиляции моего проекта C ++. В частности, я получаю ошибки «неопределенные ссылки», связанные с несколькими методами в моем клиентском классе при составлении кода сервера.
Вот краткий обзор моего проекта: < Br /> Проект-это приложение клиентского сервера, где класс сервера общается с клиентским классом. Класс ServerManager управляет подключенными клиентами.
Проект использует MakeFile для создания исполняемых файлов клиента и сервера. >: < /p>

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

/usr/bin/ld: tcp_server/main.o: in function `main::{lambda()#1}::operator()() const':
main.cpp:(.text+0x1a): неопределенная ссылка на client :: communicate () '/usr/bin/ld: tcp_server/main.o: in function Main ':
main.cpp:(.text+0x1db): неопределенная ссылка на Client :: setServer (Server &)'/usr/bin/ld: tcp_server/server.o: in function сервер :: Froadcast (Client*, char*) ':
server.cpp:(.text+0x1d3): неопределенная ссылка на Client :: getName [abi: cxx11] ()' /usr /bin /ld: сервер .cpp :(. Текст+0x1e2): неопределенная ссылка на client :: getsocket () '
/usr/bin/ld: tcp_server/servermanager.o: in function servermanager :: addclient (std: : __ cxx11 :: basic_string const &, int const &) ': servermanager.cpp :(. Текст+0x169): неопределенная ссылка на клиент :: client (std :: __ cxx11 :: basic_string , int) '
collect2: ошибка: LD вернул 1 статус выхода
Make: *** [Makefile: 23: Server] Ошибка 1
Обзор кода :
client.h: < /p>

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

//
// 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[/b]:

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

//
// 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 

Подробнее здесь: [url]https://stackoverflow.com/questions/79412794/undefined-reference-errors-in-my-c-project-missing-link-to-client-methods-in[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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