如何构建链接iPhone Simulator SDK的命令行工具?

时间:2010-10-16 22:12:49

标签: gcc opengl-es linker ios-simulator

为什么我要这么做呢? OpenGL Shader Builder是一个很棒的开发工具,但它使用桌面OpenGL编译着色器,这允许ES没有的东西。我想如果我可以创建一个链接iPhone模拟器SDK中的OpenGLES.framework的工具,我可以得到一些错误报告,而无需构建/安装/运行我的应用程序。

通过检查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编译它,并打印出错误,如果有的话。

现在问题是,我可以生成一个可运行的可执行文件吗?

1 个答案:

答案 0 :(得分:0)

我没有Mac或iPhone模拟器,所以我无法真正解决问题的这个方面,但是你可以链接到不同的OpenGL ES实现的库吗?例如。 OpenTKVincent

这可能与iPhone的实施不完全匹配,但可能会让你接近。