我试图使用scons
来构建一个跨平台的cpp项目。某些文件包含ObjC代码,该代码仅包含在OSX中,并隐藏在其他平台上的ifdef
后卫之后。scons和ObjC++
在OSX,我需要通过
env.AppendUnique(FRAMEWORKS = Split('Cocoa CoreAudio AudioToolbox AudioUnit GLUT OpenGL'))
在我SConstruct
文件,包括一些-framework
编译器/连接选项,这是我做的,因为它在文档中说。
然而,FRAMEWORKS
变量只能被用于.m
和.mm
文件,而矿山都有.cpp
扩展。我想保持这种方式,因为它们只是OSX上的ObjC文件,而在其他平台上只是cpp文件。
有没有办法让scons
将带有.cpp
扩展名的源文件作为ObjC++对待,以使其使用FRAMEWORKS
env var?
您能否告诉我们您正在使用哪个工具,而试图编译“* .cpp”文件?这归结为这样一个问题:“你如何设置你的构建环境?”。 – dirkbaechle 2015-01-28 21:16:48
@dirkbaechle我想为编译器和链接器使用'clang ++'。所以我有'env.Replace(CXX ='clang ++')'和'env.Replace(LD ='clang ++')' – Ben 2015-02-05 00:18:15
这不是我想要的。你如何初始化你的环境“env”,你是否在使用任何专门为支持ObjC而设计的特殊工具(我的朋友谷歌告诉我有些东西......)? – dirkbaechle 2015-02-06 16:33:01