我尝试使用scons
构建跨平台cpp项目。一些文件包含ObjC代码,该代码仅包含在OSX中,隐藏在其他平台上的ifdef
警卫后面。
在OSX上,我需要包含一些-framework
编译器/链接器选项,我这样做
env.AppendUnique(FRAMEWORKS = Split('Cocoa CoreAudio AudioToolbox AudioUnit GLUT OpenGL'))
在我的SConstruct
文件中,如文档中所述。
但是,FRAMEWORKS
变量仅用于.m
和.mm
个文件,而我的所有文件都有.cpp
个扩展名。我想保持这种方式,因为他们只是OSX上的ObjC文件,而只是其他平台上的cpp。
有没有办法让scons
将.cpp
扩展名为ObjC ++的源文件处理,以使其使用FRAMEWORKS
env var?
答案 0 :(得分:1)
我检查了当前版本2.3.4的源代码,并且在编译源文件时不支持FRAMEWORKS变量,仅用于链接(applelink.py工具)。 因此,您必须定义自己的ObjC Builder,然后可以使用已定义的变量,如$ _FRAMEWORKPATH,$ _FRAMEWORKS和$ FRAMEWORKSFLAGS。 如果您需要更多帮助,可能需要访问我们的用户邮件列表scons-users@scons.org(http://www.scons.org/lists.php),我们可以在这里向您介绍所有详细信息。 ;)