多种c语言方言
Multiple c language dialects
我正在尝试将一系列默认为 gnu-c99 的代码文件(Cocos3d 文件)集成到我的项目中,该项目由于使用了其他库而将成为 c11。
我开始手动编辑 cocos3d 文件(主要是引发编译器错误的结构引用)进行编译;但很快意识到这很疯狂,因为有几百个文件。额外注意; cocos3d 是 ARC,而我的项目不是;因此我有几个问题:
是否可以指定项目中的某些文件使用一种语言方言构建,而其他文件使用另一种语言方言构建(例如使用编译器标志等);如果是怎么办?
为 arc 设置编译器标志时(例如 -fobjc-arc 为一个文件启用 ARC);有没有办法对一个文件夹/一组文件递归执行此操作?
Ian 的评论为我指明了正确的方向;在 Cocos3d 的具体情况下,我上面的评论不太正确。简单地将作为 CC3HelloWorld 项目的产品生成的静态库(.a 文件)添加到您自己的项目中仍然不能解决多语言方言依赖性问题。
我仔细分析了 CC3HelloWorld 项目的结构,发现它实际上有 4 个目标;主要应用程序、cocos3d、cocos2d 和 cocos2d-花栗鼠。所以我在我的新项目中创建了 3 个目标 (file->new->target) 并为每个选择了静态库选项。然后你可以将 cocos3d、2d 和 chipmunk 的源文件拖到你的项目中,并确保只将它们添加到它们各自的目标(例如,不添加到你的主要应用程序目标)。
最后,一旦您设置了所有目标;您可以在每个目标的构建设置选项卡下独立于其他目标自由调整 c 和 c++ 语言方言; ARC 也是如此。
我正在尝试将一系列默认为 gnu-c99 的代码文件(Cocos3d 文件)集成到我的项目中,该项目由于使用了其他库而将成为 c11。
我开始手动编辑 cocos3d 文件(主要是引发编译器错误的结构引用)进行编译;但很快意识到这很疯狂,因为有几百个文件。额外注意; cocos3d 是 ARC,而我的项目不是;因此我有几个问题:
是否可以指定项目中的某些文件使用一种语言方言构建,而其他文件使用另一种语言方言构建(例如使用编译器标志等);如果是怎么办?
为 arc 设置编译器标志时(例如 -fobjc-arc 为一个文件启用 ARC);有没有办法对一个文件夹/一组文件递归执行此操作?
Ian 的评论为我指明了正确的方向;在 Cocos3d 的具体情况下,我上面的评论不太正确。简单地将作为 CC3HelloWorld 项目的产品生成的静态库(.a 文件)添加到您自己的项目中仍然不能解决多语言方言依赖性问题。
我仔细分析了 CC3HelloWorld 项目的结构,发现它实际上有 4 个目标;主要应用程序、cocos3d、cocos2d 和 cocos2d-花栗鼠。所以我在我的新项目中创建了 3 个目标 (file->new->target) 并为每个选择了静态库选项。然后你可以将 cocos3d、2d 和 chipmunk 的源文件拖到你的项目中,并确保只将它们添加到它们各自的目标(例如,不添加到你的主要应用程序目标)。
最后,一旦您设置了所有目标;您可以在每个目标的构建设置选项卡下独立于其他目标自由调整 c 和 c++ 语言方言; ARC 也是如此。