【发布时间】:2015-01-26 23:47:46
【问题描述】:
我正在尝试使用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?
【问题讨论】:
-
在尝试编译“*.cpp”文件时,您能告诉我们您当前使用的是哪个工具吗?这归结为一个问题:“您如何设置构建环境?”。
-
@dirkbaechle 我正在尝试将
clang++用于编译器和链接器。所以我有env.Replace(CXX = 'clang++')和env.Replace(LD = 'clang++') -
这不是我的目标。你如何初始化你的环境“env”,你是否使用了任何专门为支持 ObjC 而设计的特殊工具(那里有一些,正如我的朋友 Google 告诉我的......)?
-
@dirkbaechle 对不起,伙计,我是up on GH。据我所知,没有使用任何特殊工具(大多数特定于 OSX 的设置都发生在
configure_environment_darwin)
标签: objective-c macos scons