使用C在eclipse中多次定义主要错误

我正在尝试使用eclipse中的C Project生成两个exes,客户端和服务器。 两者都有主要function,因为它们是不同的前提。 两者都使用常见的confutils.c文件。 如何解决主要问题的多重定义。 我知道我们在一个项目中不能有两个主电源。 我的makefile如下所示。

.co: gcc -g -c $? # compile client and server all: confclient confserver # compile client only confclient: confclient.o confutils.o gcc -g -o confclient confclient.o confutils.o # compile server program confserver: confserver.o confutils.o gcc -g -o confserver confserver.o confutils.o 

我用这个替换了eclipse文件。 我不知道eclipse是否正确阅读它。 我不喜欢将这个项目分成两个,因为它是一个如此简单的程序。 我能够在unix中运行这些文件,没有任何问题。 我试图找到eclipse中是否有一个选项,我们可以使用它来设置构建配置。

可以定义多个构建配置 – 每个构建配置都具有不同的构建文件集。

首先打开Project属性并导航到Manage Configurations

在此处输入图像描述

创建新的构建配置:

在此处输入图像描述

并将其设置为活动

在此处输入图像描述

最后定义不包含文件的filter,以确保使用仅要使用的main()构建源文件:

在此处输入图像描述

就是这样:

在此处输入图像描述

现在,您可以从Menu > Project > Build Configurations > Set Active 选择目标构建配置。

我认为你可以设置多个“构建配置”来避免这种情况。 在菜单栏的“项目”下,您可以选择活动的构建配置。

有多种方法可以排除不同配置的文件。 在项目属性下,转到“C / C ++ General”,“路径和符号”,然后在这里选择“源位置”。 最重要的是,您现在可以选择构建配置,然后为不同的构建配置定义不同的sorurce位置。 在这里,您可以为源代码添加文件夹,这里有一个技巧,对于您选择包含的文件夹,您可以使用filter来忽略特定文件。

在你的情况下,我将制作两个构建配置,一个用于confclient,对于这个我将从scource位置排除confserver.c,反之亦然。

您将需要构建两次项目,但utilspart将保持不变,因此它不会重新编译,这比两个项目更有利。 也可能很高兴将所有代码放在同一个项目中,因为我猜服务器端和客户端的代码将被连接。