Наличие 2 или более методов main() в C с Eclipse

Я занимаюсь разработкой небольшого клиент-серверного приложения на C. В данный момент я вызываю gcc вручную и использую свои собственные файлы make. У меня было два main() функции, один в server.c и другие в client.c,

Я импортировал все файлы, которые у меня были в папке моего проекта, в Eclipse, но при попытке скомпилировать его предупредил меня, что у меня есть несколько определений main. Я понимаю, что данный исполняемый файл должен иметь один main() функции, но в этом случае я хотел бы иметь 2, чтобы я мог запустить сервер и клиент, так как они разделяют почти все остальные .c файлы.

Как это решить? Единственная идея, которая приходит на ум, это разделить это на 2 (может быть, 3?) Проекта? Я хочу запустить сервер и клиент одновременно, и я бы хотел (если это возможно) сделать это через сам Eclipse.

Спасибо

Редактировать:

Makefile:

table-client: client-lib.o
    gcc -o tabela-client table_client.c table.c base64.c list.c client-lib.o

table-server:
    gcc -o tabela-server table_server.c message.c base64.c entry.c data.c table_skel.c table.c list.c

client-lib.o:
    gcc -c remote_table.c network_client.c message.c data.c entry.c
    ld -r data.o entry.o message.o network_client.o remote_table.o -o client-lib.o

clean:
    rm -f tabela-server
    rm -f tabela-client
    rm -f *.o

4 ответа

Решение

Да, тебе лучше разделить свой проект. И может быть, лучше сделать 3 разных проекта: сервер, клиент, общая библиотека для общих функций.

Хорошая идея - разделить его на три проекта (сервер, клиент и общий код в библиотеке). Настройте проекты сервера и клиента так, чтобы они зависели от общей библиотеки кода. Библиотека общего кода может быть выполнена в виде статической библиотеки.

Эй, ребята, мы можем сделать это так. Я столкнулся с той же проблемой и смог решить ее следующим образом: Спасибо!

#define my main() 
my() 

{ 

printf("hello frnz"); 

}

Таким образом, мы можем иметь столько сетей, сколько пожелаем. Вола!

Вы можете настроить так, чтобы определенные файлы были включены / исключены из сборки. Установив клиентскую сборку и серверную сборку, вы можете иметь несколько сетей, если они хранятся в отдельных файлах и сборках.

РЕДАКТИРОВАТЬ: Неважно, ответ Наличие 2 или более методов main() в C с Eclipse лучше с точки зрения ремонтопригодности.

Другие вопросы по тегам