爲什麼我會想這麼做? OpenGL Shader Builder是一款出色的開發工具,但它使用桌面OpenGL編譯着色器,它允許ES不支持的一些事情。我想,如果我可以創建一個工具,鏈接到iPhone Simulator SDK中的OpenGLES.framework,我可以得到一些錯誤報告,而無需構建/安裝/運行我的應用程序。如何構建一個鏈接到iPhone Simulator SDK的命令行工具?
通過檢查出現在Xcode構建窗口的命令行,我就這樣(在Makefile文件格式,清晰度嚴重!):
ARCH=i386
PLATFORM=/Developer/Platforms/iPhoneSimulator.platform/Developer
GCC=$(PLATFORM)/usr/bin/gcc-4.2
ISYSROOT=$(PLATFORM)/SDKs/iPhoneSimulator3.2.sdk
glsllint: glsllint.c
$(GCC) -arch $(ARCH) -isysroot $(ISYSROOT) -mmacosx-version-min=10.5 -framework OpenGLES \
glsllint.c -o glsllint
的C文件本身是最小的;它只包含對glCreateShader()
的調用,以便我可以判斷它是否正確鏈接。上面生成一個可執行文件,但是當我嘗試運行它時:
dyld: Library not loaded: /System/Library/Frameworks/OpenGLES.framework/OpenGLES
這是錯誤的位置。我該如何製作它,以便可執行文件在正確的位置查找框架?
我知道這不支持,但該死的,如果它工作不是很酷嗎?要清楚的是,我並不期望這個程序能夠繪製任何東西,我只是想加載着色器源代碼,使用OpenGL編譯它,並打印出錯誤(如果有的話)。
現在,問題是,我可以生成一個運行的可執行文件嗎?
這是一個合理的建議,但我不確定我是否可以證明爲構建工具安裝完全不同的實現。 – benzado 2010-10-27 02:56:40