如何参数化Eclipse生成的make文件

如何参数化Eclipse生成的make文件,eclipse,makefile,eclipse-cdt,Eclipse,Makefile,Eclipse Cdt,我有一个配置为生成make文件的eclipsecdt项目 目前我正在windows上开发,我的构建服务器运行Linux make文件在本地机器上构建良好,但我有两个预构建的外部依赖项:boost和ZeroMQ。这两个目录都有一个include目录、一个lib目录和一个关联的dll/so 如何配置项目,使生成的make文件可以具有在生成时解析的不同BOOST_HOME或ZMQ_HOME变量(而不是烘焙到make文件中)。CDT生成的make文件包括以下行: -include ../makefile

我有一个配置为生成make文件的eclipsecdt项目

目前我正在windows上开发,我的构建服务器运行Linux

make文件在本地机器上构建良好,但我有两个预构建的外部依赖项:boost和ZeroMQ。这两个目录都有一个include目录、一个lib目录和一个关联的dll/so


如何配置项目,使生成的make文件可以具有在生成时解析的不同BOOST_HOME或ZMQ_HOME变量(而不是烘焙到make文件中)。

CDT生成的make文件包括以下行:

-include ../makefile.init
 ...
-include ../makefile.defs
 ...
-include ../makefile.targets
也就是说,您可以在项目根目录中添加例如
makefile.defs
,以控制生成

JeffV编辑: 我添加了一个makefile.init:

 BOOST_HOME = C:\code\boost_1_48_0
 ZMQ_HOME = C:\code\zmq\zeromq-2.1.11
在项目设置“构建变量”配置中,我还添加了以下条目:

BOOST_HOME = $(BOOST_HOME)
ZMQ_HOME = $(ZMQ_HOME)
这会导致eclipse将${BOOST_HOME}替换为make文件中的$(BOOST_HOME)变量,其中它是my lib中的引用,并包含路径


这允许我在每个构建平台上都有一个特定于平台的makefile.init版本。

这只是触摸makefile的一个快速而肮脏的替代方法。您可以在项目中使用符号链接,并根据平台更改它们指向的内容。eclipse如何呈现指向make文件的符号链接?makefiles可能将符号链接引用为项目文件夹层次结构中的文件夹。因此,您可以更改它们在Linux中指向的位置,以获得您想要的效果。enobayram,我正在寻找一种适用于windows或Linux(以及IDE或shell)的解决方案。我不确定eclipse符号链接在windows上做什么。符号链接与eclipse无关,它们基本上是假的文件/文件夹,只是指向其他地方的真实文件/文件夹。Linux和Windows(至少7个)都支持它们。如果您使用它们指向您可能想要的任何目录,eclipse甚至不知道它。它会天真地使用那个假文件夹,实际上它指向每个平台中正确的文件夹。谢谢,您能详细说明如何重写path变量吗。@Jeff,类似于makefile中的
export path:=your/path:$(path)
。。。或者,也可以通过Eclipse项目属性设置路径:C/C++Build->environment我仍然并没有得到需要添加到makefile.init的内容,以及如何配置Eclipse以在某个时候使用构建变量呈现makefile。