OpenGL ES - native libs issue : Can't find dependent libraries

Started by Aces, January 14, 2015, 04:22:45

Previous topic - Next topic

Aces

Hi, guys

I'm testing  LWjgl - Version: 2.9.3.
Build it  using default ant target and everything works just fine with desktop OpenGL.

Then I try the OpenGL ES. It compiles OK, generated correct OpenGL ES classes and binary lwjgl.dll ( I would suggest  that   GLES use a different native lib name, but that is another subject ...)

When I try to run org.lwjgl.test.opengles.Gears demo I have the following error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\LWjGL\GLES\x86\lwjgl.dll: Can't find dependent libraries

I try to find missing libraries with depends.exe and NikPEViwer, but no clues about what lib is missing.
I try libEGL.dll and libGLESv2.dll from Imagination (PowerVR) SDK 3.4, but same error. The libraries are ok, as mali-cube.exe (from Mali OpenGL ES SDK) runs fine using those libs, as well Angles' eglinfo.exe.

I also try MSVS 2010 and MSVS 2013, but same results.

Any comments will be welcome ;)

Aces






Aces


no luck so far.
I believe OpenGL is broken somewhere on LWjgl' build files, and it doesn't generate native bindings to libGLES20.dll.
I note builds doesn't generates header files for  classes from folder src\generated\org\lwjgl\opengles, and perhaps it is one of the causes.






spasi

Quote from: Aces on January 14, 2015, 04:22:45I try libEGL.dll and libGLESv2.dll from Imagination (PowerVR) SDK 3.4, but same error.

Does the SDK also come with a libEGL.lib? You'll need that one too for the build to work.

Aces

Quote from: spasi on January 17, 2015, 20:09:51
Quote from: Aces on January 14, 2015, 04:22:45I try libEGL.dll and libGLESv2.dll from Imagination (PowerVR) SDK 3.4, but same error.

Does the SDK also come with a libEGL.lib? You'll need that one too for the build to work.

Thanks for your replay!

Yes, LWjgl comes with libEGL.lib, as well libEGL.dll end libGLESv2.dll. Note there is no libGLESv2.lib file, as happens on current OpenGL ES emulator. I try other emulators, as PowerVR SDK 3.4, Mali SDK 2.0, etc. updating libs and header files.

Below it the ant output from a fresh new LWjgl sdk, and everything looks just fine, except it fails due dependency issue.
Attached is a Dependency Walk screenshot from lwjgl.dll. I see it is linked with libEGL.dll.
Note in the screenshot there is no links to libGLESv2.dll. btw, JWT.dll is loaded within JVM environment, so it's not a issue.

Not much luck, so far.

The native build output:
Quote
-compile_native_win32_es:

compile:
     [echo] C:\MSSDK\7.0A\lib

compile_dir:
    [apply] Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
    [apply] Copyright (C) Microsoft Corporation.  All rights reserved.
    [apply]
    [apply] common_tools.c
    [apply] extal.c
    [apply] extcl.c
    [apply] org_lwjgl_BufferUtils.c
    [apply] org_lwjgl_openal_AL.c
    [apply] org_lwjgl_openal_ALC10.c
    [apply] org_lwjgl_openal_ALC11.c
    [apply] org_lwjgl_opencl_CL.c
    [apply] org_lwjgl_opencl_CallbackUtil.c
    [apply] org_lwjgl_opengl_AWTSurfaceLock.c
    [apply] extgl.c
    [apply] extgl_egl.c
    [apply] org_lwjgl_opengles_CallbackUtil.c
    [apply] org_lwjgl_opengles_EGL.c
    [apply] org_lwjgl_opengles_EGLKHRFenceSync.c
    [apply] org_lwjgl_opengles_EGLKHRReusableSync.c
    [apply] org_lwjgl_opengles_EGLNVSync.c
    [apply] org_lwjgl_opengles_GLContext.c
    [apply] org_lwjgl_openal_AL10.c
    [apply] org_lwjgl_openal_AL11.c
    [apply] org_lwjgl_openal_EFX10.c
    [apply] org_lwjgl_opencl_APPLEContextLoggingFunctions.c
    [apply] org_lwjgl_opencl_APPLEGLSharing.c
    [apply] org_lwjgl_opencl_APPLESetMemObjectDestructor.c
    [apply] org_lwjgl_opencl_CL10.c
    [apply] org_lwjgl_opencl_CL10GL.c
    [apply] org_lwjgl_opencl_CL11.c
    [apply] org_lwjgl_opencl_CL12.c
    [apply] org_lwjgl_opencl_CL12GL.c
    [apply] org_lwjgl_opencl_EXTDeviceFission.c
    [apply] org_lwjgl_opencl_EXTMigrateMemobject.c
    [apply] org_lwjgl_opencl_KHRGLEvent.c
    [apply] org_lwjgl_opencl_KHRGLSharing.c
    [apply] org_lwjgl_opencl_KHRICD.c
    [apply] org_lwjgl_opencl_KHRSubgroups.c
    [apply] org_lwjgl_opencl_KHRTerminateContext.c
    [apply] org_lwjgl_opengles_AMDPerformanceMonitor.c
    [apply] org_lwjgl_opengles_ANGLEFramebufferBlit.c
    [apply] org_lwjgl_opengles_ANGLEFramebufferMultisample.c
    [apply] org_lwjgl_opengles_APPLEFramebufferMultisample.c
    [apply] org_lwjgl_opengles_APPLESync.c
    [apply] org_lwjgl_opengles_ARBDrawBuffers.c
    [apply] org_lwjgl_opengles_EXTBlendMinmax.c
    [apply] org_lwjgl_opengles_EXTCopyTextureLevels.c
    [apply] org_lwjgl_opengles_EXTDebugLabel.c
    [apply] org_lwjgl_opengles_EXTDebugMarker.c
    [apply] org_lwjgl_opengles_EXTDiscardFramebuffer.c
    [apply] org_lwjgl_opengles_EXTMapBufferRange.c
    [apply] org_lwjgl_opengles_EXTMultiDrawArrays.c
    [apply] org_lwjgl_opengles_EXTMultisampledRenderToTexture.c
    [apply] org_lwjgl_opengles_EXTMultiviewDrawBuffers.c
    [apply] org_lwjgl_opengles_EXTOcclusionQueryBoolean.c
    [apply] org_lwjgl_opengles_EXTRobustness.c
    [apply] org_lwjgl_opengles_EXTSeparateShaderObjects.c
    [apply] org_lwjgl_opengles_EXTTextureArray.c
    [apply] org_lwjgl_opengles_EXTTextureStorage.c
    [apply] org_lwjgl_opengles_GLES20.c
    [apply] org_lwjgl_opengles_GLES30.c
    [apply] org_lwjgl_opengles_IMGMultisampledRenderToTexture.c
    [apply] org_lwjgl_opengles_KHRDebug.c
    [apply] org_lwjgl_opengles_NVCoverageSample.c
    [apply] org_lwjgl_opengles_NVDrawBuffers.c
    [apply] org_lwjgl_opengles_NVDrawPath.c
    [apply] org_lwjgl_opengles_NVDrawTexture.c
    [apply] org_lwjgl_opengles_NVFence.c
    [apply] org_lwjgl_opengles_NVFramebufferVertexAttribArray.c
    [apply] org_lwjgl_opengles_NVGetTexImage.c
    [apply] org_lwjgl_opengles_NVReadBuffer.c
    [apply] org_lwjgl_opengles_NVSystemTime.c
    [apply] org_lwjgl_opengles_OESBlendEquationSeparate.c
    [apply] org_lwjgl_opengles_OESBlendFuncSeparate.c
    [apply] org_lwjgl_opengles_OESBlendSubtract.c
    [apply] org_lwjgl_opengles_OESEGLImage.c
    [apply] org_lwjgl_opengles_OESEGLImageExternal.c
    [apply] org_lwjgl_opengles_OESFramebufferObject.c
    [apply] org_lwjgl_opengles_OESGetProgramBinary.c
    [apply] org_lwjgl_opengles_OESMapbuffer.c
    [apply] org_lwjgl_opengles_OESTexture3D.c
    [apply] org_lwjgl_opengles_OESVertexArrayObject.c
    [apply] org_lwjgl_opengles_QCOMDriverControl.c
    [apply] org_lwjgl_opengles_QCOMExtendedGet.c
    [apply] org_lwjgl_opengles_QCOMExtendedGet2.c
    [apply] org_lwjgl_opengles_QCOMTiledRendering.c
    [apply] LWJGL.c
    [apply] display.c
    [apply] org_lwjgl_Sys.c
    [apply] org_lwjgl_input_Cursor.c
    [apply] org_lwjgl_opengl_Display.c
    [apply] org_lwjgl_opengl_WindowsAWTGLCanvasPeerInfo.c
    [apply] org_lwjgl_opengl_WindowsDisplayPeerInfo.c
    [apply] org_lwjgl_opengl_WindowsKeyboard.c
    [apply] org_lwjgl_opengl_WindowsRegistry.c
    [apply] windows_al.c
    [apply] windows_cl.c
    [apply] context.c
    [apply] extgl_wgl.c
    [apply] org_lwjgl_opengl_WindowsPeerInfo.c
    [apply] Applied cl to 97 files and 0 directories.

link:
    [apply] Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
    [apply] Copyright (C) Microsoft Corporation.  All rights reserved.
    [apply]
    [apply] Microsoft (R) Incremental Linker Version 10.00.40219.01
    [apply] Copyright (C) Microsoft Corporation.  All rights reserved.
    [apply]
    [apply] /dll
    [apply] /implib:lwjgl.lib
    [apply] /out:lwjgl.dll
    [apply] /LIBPATH:C:\NVPACK\jdk1.7.0_45\jre\..\lib
    [apply] /LIBPATH:C:\MSSDK\7.0A\lib
    [apply] /LIBPATH:C:\Projetos\TEMP\lwjgl\libs\windows
    [apply] /LIBPATH:..\..\libs\windows
    [apply] /OPT:REF
    [apply] /OPT:ICF
    [apply] /DLL
    [apply] /DELAYLOAD:jawt.dll
    [apply] Kernel32.lib
    [apply] ole32.lib
    [apply] libEGL.lib
    [apply] Version.lib
    [apply] user32.lib
    [apply] Gdi32.lib
    [apply] Advapi32.lib
    [apply] jawt.lib
    [apply] delayimp.lib
    [apply] winmm.lib
    [apply] Comctl32.lib
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\LWJGL.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\common_tools.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\context.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\display.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\extal.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\extcl.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\extgl.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\extgl_egl.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\extgl_wgl.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_BufferUtils.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_Sys.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_input_Cursor.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_openal_AL.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_openal_AL10.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_openal_AL11.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_openal_ALC10.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_openal_ALC11.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_openal_EFX10.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_APPLEContextLoggingFunctions.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_APPLEGLSharing.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_APPLESetMemObjectDestructor.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_CL.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_CL10.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_CL10GL.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_CL11.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_CL12.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_CL12GL.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_CallbackUtil.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_EXTDeviceFission.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_EXTMigrateMemobject.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_KHRGLEvent.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_KHRGLSharing.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_KHRICD.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_KHRSubgroups.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opencl_KHRTerminateContext.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengl_AWTSurfaceLock.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengl_Display.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengl_WindowsAWTGLCanvasPeerInfo.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengl_WindowsDisplayPeerInfo.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengl_WindowsKeyboard.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengl_WindowsPeerInfo.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengl_WindowsRegistry.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_AMDPerformanceMonitor.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_ANGLEFramebufferBlit.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_ANGLEFramebufferMultisample.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_APPLEFramebufferMultisample.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_APPLESync.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_ARBDrawBuffers.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_CallbackUtil.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EGL.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EGLKHRFenceSync.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EGLKHRReusableSync.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EGLNVSync.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTBlendMinmax.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTCopyTextureLevels.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTDebugLabel.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTDebugMarker.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTDiscardFramebuffer.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTMapBufferRange.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTMultiDrawArrays.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTMultisampledRenderToTexture.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTMultiviewDrawBuffers.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTOcclusionQueryBoolean.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTRobustness.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTSeparateShaderObjects.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTTextureArray.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_EXTTextureStorage.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_GLContext.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_GLES20.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_GLES30.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_IMGMultisampledRenderToTexture.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_KHRDebug.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVCoverageSample.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVDrawBuffers.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVDrawPath.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVDrawTexture.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVFence.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVFramebufferVertexAttribArray.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVGetTexImage.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjg
    [apply] l_opengles_NVReadBuffer.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_NVSystemTime.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESBlendEquationSeparate.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESBlendFuncSeparate.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESBlendSubtract.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESEGLImage.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESEGLImageExternal.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESFramebufferObject.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESGetProgramBinary.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESMapbuffer.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESTexture3D.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_OESVertexArrayObject.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_QCOMDriverControl.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_QCOMExtendedGet.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_QCOMExtendedGet2.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\org_lwjgl_opengles_QCOMTiledRendering.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\windows_al.obj
    [apply] C:\Projetos\TEMP\lwjgl\bin\lwjgles\windows_cl.obj
    [apply]    Creating library lwjgl.lib and object lwjgl.exp
     [copy] Copying 1 file to C:\Projetos\TEMP\lwjgl\libs\windows

-compile_native_linux_es:

BUILD SUCCESSFUL
Total time: 11 seconds
end native =======================================================