我試圖使用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