run name generate engine create app gcc opengl-es linker ios-simulator

gcc - generate - preference name



¿Cómo construyo una herramienta de línea de comando que vincule con el SDK de iPhone Simulator? (1)

¿Por qué diablos querría hacer eso? El OpenGL Shader Builder es una gran herramienta de desarrollo, pero compila sombreadores que usan OpenGL de escritorio, lo que permite algunas cosas que ES no ofrece. Me imagino que si puedo crear una herramienta que vincule con el OpenGLES.framework en el iPhone Simulator SDK, puedo obtener algunos informes de errores sin tener que compilar / instalar / ejecutar mi aplicación.

Al inspeccionar las líneas de comando que aparecen en la ventana de construcción de Xcode, llegué hasta aquí (en formato Makefile, para mayor claridad. ¡En serio!):

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

El archivo C en sí mismo es mínimo; solo contiene una llamada a glCreateShader() , para que pueda saber si se está enlazando correctamente. Lo anterior produce un ejecutable, pero cuando intento ejecutarlo:

dyld: Library not loaded: /System/Library/Frameworks/OpenGLES.framework/OpenGLES

Esa es la ubicación incorrecta. ¿Cómo lo hago para que el ejecutable busque el marco en la ubicación correcta?

Sé que esto no es compatible, pero maldición, ¿no sería genial si funciona? Para que quede claro, no espero que este programa dibuje nada, solo quiero cargar el código fuente del sombreador, usar OpenGL para compilarlo e imprimir los errores, si los hubiera.

En este momento, la pregunta es, ¿puedo producir un ejecutable que se ejecute?


No tengo un simulador de Mac o iPhone, así que no puedo abordar ese aspecto de la pregunta, pero ¿puedes vincularlo a una biblioteca de implementación de OpenGL ES diferente? Por ejemplo, OpenTK o Vincent .

Puede que no coincida al 100% con la implementación del iPhone, pero puede que te acerque.