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

时间:2013-09-20 22:07:55

标签: c eclipse build

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

.c.o:
    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中是否有一个选项,我们可以使用它来设置构建配置。

2 个答案:

答案 0 :(得分:2)

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

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

enter image description here

创建构建配置:

enter image description here

并将其设置为有效

enter image description here

最后定义过滤器不包括文件以确保您构建 只想使用main()的源文件:

enter image description here

就是这样:

enter image description here

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

答案 1 :(得分:0)

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

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

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

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