我将使用Xcode构建一个用Obj-C编写的Mac应用程序。为了便于讨论,我们假设它将有10个可选功能。我需要一种方法来启用或禁用这些功能,以创建应用程序的自定义构建。这些构建将是自动化的(最有可能通过most终端),因此我需要一种方法来声明在构建时启用/禁用这些功能中的哪些(配置文件或CLI参数将是理想的)。
那么,实现这一目标的最佳方法是什么呢?我正在尝试在开始编码之前计划好这一点,以便在我的代码库中有适当的分离,以允许这些功能来来去去。理想情况下,自定义构建应该只包含它应该具有的功能的编译代码。换句话说,我不想总是编译所有的功能,并在运行时调节它们。
发布于 2010-04-19 08:38:04
为此,您可以使用Xcode配置;例如,对于每个配置,您可以包含不同的前缀报头。然后,您可以通过xcodebuild从命令行触发构建。
如果您更喜欢配置文件方法,则可以使用.xcconfig文件来定义任何Xcode构建设置。
Xcode构建系统指南describes这两种方法。
发布于 2011-05-26 13:50:54
在编译器标志下使用#ifdef和-D标志来控制内容是编译入还是编译出。如果需要,您可以通过这种方式设置许多不同的配置,只需让xcode构建配置正常工作即可。
#include <stdio.h>
int
main (void)
{
#ifdef TEST
printf ("Test mode\n");
#endif
printf ("Running...\n");
return 0;
}输出1:
$ gcc -Wall -DTEST dtest.c
$ ./a.out
Test mode
Running...输出2:
$ gcc -Wall dtest.c
$ ./a.out
Running...来源:http://www.network-theory.co.uk/docs/gccintro/gccintro_34.html
https://stackoverflow.com/questions/2663991
复制相似问题