0

假设我们有一个名为 CYGPKG_FOO 的包,它有一个 cdl_option “CYGPKG_FOO_FEATURE_A_ENABLE”。当启用此 cdl_option 时,我希望将特定的 gcc 标志(例如“-DFEATURE_A=1”)添加到此包的 CFLAGS 中。

但是“eCos 组件编写者指南”说:

http://ecos.sourceware.org/docs-3.0/cdl-guide/build.make.html#BUILD.FLAGS

从上面的链接中,看起来我们无法根据 cdl_option 选择添加/删除 CFLAGS ......

所以我的问题是:我可以做第一段中描述的事情吗?如果可以,怎么做?

谢谢!

4

1 回答 1

0

-DFEATURE_A=1与写入#define FEATURE_A 1源文件或头文件相同。

CYGPKG_FOO_FEATURE_A_ENABLE设置时,这会导致在自动生成的包含文件中设置一些预处理器符号。运行后查看install/include/pkgconf/目录ecosconfig。如果默认值不符合您的喜好,您可以向 CDL 添加更多define行以定义更多符号。

如果您想精确控制这些符号所取的值,您可以使用进一步的cdl_option,也许使用 alegal_valuescalculated指令来做到这一点;如果没有,您可以在包内的头文件中添加合适的定义,以打开预处理器符号的存在或不存在。

于 2011-05-09T22:14:47.087 回答