我正在尝试使用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中是否有一个选项,我们可以使用它来设置构建配置。
答案 0 :(得分:2)
可以定义多个构建配置 - 每个配置都有不同的文件集。
首先打开Project属性并导航到Manage Configurations
:
创建新构建配置:
并将其设置为有效:
最后定义过滤器不包括文件以确保您构建
只想使用main()
的源文件:
就是这样:
现在,您可以从Menu
> 选择目标构建配置Project
> Build Configurations
> Set Active
。
答案 1 :(得分:0)
我认为您可以设置多个“构建配置”来避免这种情况。在菜单栏的“项目”下,您可以选择活动的构建配置。
有多种方法可以排除不同配置的文件。在项目属性下,转到“C / C ++ General”,“Paths and Symbols”,在这里选择“Source Location”。最重要的是,您现在可以选择构建配置,然后为不同的构建配置定义不同的sorurce位置。在这里,您可以为源代码添加文件夹,这就是技巧,对于您选择包含的文件夹,您可以使用过滤器来忽略特定文件。
在你的情况下,我会制作两个Build Configurations,一个用于confclient,对于这个我将从scource位置排除confserver.c,反之亦然。
您将需要构建两次项目,但utilspart将保持不变,因此它不会重新编译,这比两个项目更有利。将所有代码放在同一个项目中可能会很好,因为我猜服务器端和客户端的代码将被连接。