在带有Eclipse的C中有两个或多个main()方法
我正在用C开发一个小型的客户机/服务器应用程序。当时我正在手动调用gcc,并使用我自己的make文件。我有两个在带有Eclipse的C中有两个或多个main()方法,c,eclipse,C,Eclipse,我正在用C开发一个小型的客户机/服务器应用程序。当时我正在手动调用gcc,并使用我自己的make文件。我有两个main()函数,一个在server.c中,另一个在client.c中 我将项目文件夹中的所有文件导入Eclipse,但在尝试编译时,它警告我main有多个定义。我知道一个给定的可执行文件应该有一个main()函数,但在本例中我希望有2个,这样我就可以运行服务器和客户端,因为它们几乎共享所有其他.c文件 如何解决这个问题?我想到的唯一一个想法是将其分为2个(可能是3个?)项目?我希望同时
main()
函数,一个在server.c
中,另一个在client.c
中
我将项目文件夹中的所有文件导入Eclipse,但在尝试编译时,它警告我main有多个定义。我知道一个给定的可执行文件应该有一个main()
函数,但在本例中我希望有2个,这样我就可以运行服务器和客户端,因为它们几乎共享所有其他.c
文件
如何解决这个问题?我想到的唯一一个想法是将其分为2个(可能是3个?)项目?我希望同时运行服务器和客户机,并且我希望(如果可能的话)通过Eclipse本身这样做
谢谢
编辑:
生成文件:
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
您可以进行设置,以便在生成中包含/排除特定文件。通过设置客户端构建和服务器构建,您可以拥有多个主电源,只要它们保存在单独的文件和构建中
编辑:不管怎样,从可维护性的角度来看,答案更好。是的,您最好拆分项目。可能最好是创建三个不同的项目:服务器、客户端、共享库以实现公共功能。将其分为三个项目(服务器、客户端和库中的公共代码)是一个好主意。设置服务器和客户端项目,使它们依赖于公共代码库。公共代码库可以做成静态库。嘿,伙计们,我们实际上可以这样做。我也遇到了同样的问题,并能以如下方式解决:谢谢
#define my main()
my()
{
printf("hello frnz");
}
因此,我们可以拥有我们想要的任何数量的电源。沃拉 您的
Makefile
是什么样子的?可能与