2013-07-02 63 views
1

我試圖在我的函數中使用gluUnProject()將視口的2D座標轉換爲3D世界模型。但是,當我嘗試建立,我得到這個消息:gluUnProject()在構建期間無法識別

D:/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe:

./obj/local/armeabi/objs-debug/tuxrider/src/course_load.o: in function get_OGL_position:jni/tuxrider/src/course_load.c:124: error: undefined reference to 'gluUnProject' collect2: ld returned 1 exit status

/cygdrive/d/android-ndk-r8d/build/core/build-binary.mk:397: recipe for target `obj/local/armeabi/libtuxrider.so' failed make: *

[obj/local/armeabi/libtuxrider.so] Error 1

索引在Eclipse中,認識到這一點的功能,但ndk-build沒有。 OpenGLES 2.0有問題嗎?

回答

1

gluUnProject()不是OpenGL ES的一部分。這是GL Utility軟件庫GLU的一部分,它不會被Android NDK公開。

有一個適用於Android的GLU庫的端口 - GLU ES:http://code.google.com/p/glues/只需使用它。

0

collect2:LD返回1個退出狀態

這是從連接器(稱爲LD)一個神祕的,但常見的錯誤,你可能已經包含對OpenGL-ES的頭,卻忽略了真正對鏈接庫。

+0

我不明白。我沒有包含GL的頭文件,也沒有包含GLU的頭文件,但所有的GL函數都可以正常工作,除了這個GLU函數。 – miller

+0

eclipse索引器可能會查看您的本地include目錄,但您的目標系統沒有在同一位置定義gluUnProject()。如果你沒有包含頭文件,那麼我很驚訝它包含了所有的頭文件,但你可能包含的另一個頭文件包含了部分內容,但不是所有的頭文件。 IE除了gluUnProject()之外,你一直在使用的所有東西,或者編譯器在那個時候死掉了,並且沒有報告其他符號丟失。 – awiebe