在我的项目中,我使用不同的标志来处理多个目标时运行不同的代码。像
这样的东西#ifdef MY_FLAG
//do this
#else
//do this other
#endif
现在我正在将一些代码带到外部库中,但我不想为每个标志编译不同版本的库,所以问题是:
有没有办法传递类似于从外面告诉库(或框架)的参数,哪些代码应该在" global"方式?
答案 0 :(得分:0)
您正在使用#ifdef
执行的操作是确定编译器可以看到的代码。因此,您将不得不为每个标志编译不同的版本,因为库已链接但已编译。我想这个问题更多的是你对磁盘上的人做了什么。
您可以将多个CPU架构存储到一个静态库中。因此,任何仅仅针对您是针对ARMv7,ARMv7还是i386的标志都可以使用单个库进行处理。
对于其他人,您可能需要生成不同的库。然而,这只是磁盘占用空间的形状问题 - 您可以使用链接到库的任何项目的项目设置,以便根据构建配置链接到库的不同版本。
答案 1 :(得分:0)
一种选择是让框架提供框架用户可以调用的某种初始化方法或函数。这将告诉框架它应该运行什么“模式”。框架的客户端可以在应用程序启动时调用它。