相关疑难解决方法(0)

控制Xcode将包含哪个项目头文件

我的Xcode项目使用两个目标构建到同一产品的变体.两者之间的区别仅在于使用了哪个版本的库.对于.c源文件,使用目标复选框可以很容易地将正确的版本分配给正确的目标.但是,包括头文件始终包含相同的头文件.这对于一个目标是正确的,但对另一个目标则是错误的.

有没有办法控制每个目标包含哪个头文件?

这是我的项目文件层次结构(在Xcode中复制):

MyProject
  TheirOldLib
    theirLib.h
    theirLib.cpp
  TheirNewLib
    theirLib.h
    theirLib.cpp
myCode.cpp
Run Code Online (Sandbox Code Playgroud)

和myCode.cpp做的事情如下:

#include "theirLib.h"
…
somecode()
{
#if OLDVERSION
  theirOldLibCall(…);
#else
  theirNewLibCall(…);
#endif
}
Run Code Online (Sandbox Code Playgroud)

当然,我OLDVERSION为一个目标而不是另一个目标定义.

注意#include必须如图所示.以下两个都失败,找不到文件错误:

#include "TheirOldLib/theirLib.h"
#include "TheirNewLib/theirLib.h"
Run Code Online (Sandbox Code Playgroud)

那么有没有办法告诉Xcode哪个theirLib.h包含每个目标?

约束:
- 两个头文件具有相同的名称.作为最后的手段,我可​​以重命名其中一个,但我宁愿避免这样做,因为这将导致其他平台上的主要头发.
- 必须更改#include添加对封闭文件夹的引用也是我宁愿避免的,因为我需要使用条件编译指令执行两次.
- 我可以自由地调整我的项目,因为我认为合适

谢谢你的帮助.

xcode include search-path

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

include ×1

search-path ×1

xcode ×1