2012-10-10 29 views
0

在我的项目中,我使用不同的标志来处理多个目标时运行不同的代码。喜欢的东西是否可以将参数传递给框架/库?

#ifdef MY_FLAG 
//do this 
#else 
//do this other 
#endif 

现在我对我的方式来采取一些代码,外部库,但我不希望编译成不同版本的每个标志库的,所以问题是:

有没有办法传递一些参数,从外部告诉库(或框架)哪些代码应该以“全局”方式运行?

回答

0

你在做什么#ifdef正在建立编译器可以看到的代码。所以你将不得不为每个标志编译不同的版本,因为库链接了但已经被编译。我想这个问题更多的是你在磁盘上做什么。

您可以将多个CPU架构存储到单个静态库中。所以那些仅仅是针对ARMv7,ARMv7s还是i386的标志都可以用一个库来处理。

对于其他你可能会产生不同的库。但是,这只是磁盘占用空间形状的问题 - 您可以使用与库链接的任何项目的项目设置,以便根据构建配置链接到不同版本的库。

0

一种选择是让框架提供框架用户可以调用的某种初始化方法或函数。这将告诉框架应该运行哪种“模式”。框架的客户端可以在应用程序启动时调用它。

相关问题