我有一个配置为生成make文件的Eclipse CDT项目。如何参数化Eclipse生成的make文件
我现在正在windows上开发,而我的构建服务器正在运行Linux。
make文件在我的本地机器上很好地构建,但我有两个预构建的外部依赖项:boost和ZeroMQ。这两个都有一个包含目录,一个lib目录和一个关联的dll/so。
如何配置项目,使生成的make文件可以具有不同的BOOST_HOME或ZMQ_HOME变量,这些变量在生成时解析(而不是烘焙到make文件中)。
我有一个配置为生成make文件的Eclipse CDT项目。如何参数化Eclipse生成的make文件
我现在正在windows上开发,而我的构建服务器正在运行Linux。
make文件在我的本地机器上很好地构建,但我有两个预构建的外部依赖项:boost和ZeroMQ。这两个都有一个包含目录,一个lib目录和一个关联的dll/so。
如何配置项目,使生成的make文件可以具有不同的BOOST_HOME或ZMQ_HOME变量,这些变量在生成时解析(而不是烘焙到make文件中)。
生成文件由CDT产生包括下列行:
-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)
导致食来代替$ {BOOST_HOME}它是我的lib中的引用,包含路径,在make文件中带有$(BOOST_HOME)变量。
这使我可以在每个构建平台上拥有特定于平台的makefile.init版本。
只是触摸Makefile的一个快速和肮脏的替代方案。您可以在项目中使用符号链接,并根据平台更改它们指向的内容。 – enobayram 2012-03-21 11:52:34
我需要这个转换为构建服务器的非eclipse环境。 eclipse如何渲染make文件的符号链接? – JeffV 2012-03-21 16:12:12
makefile可能会将符号链接称为项目文件夹层次结构中的文件夹。所以你可以改变他们在Linux中指向的地方,获得你想要的效果。 – enobayram 2012-03-21 17:21:29