Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't seem to get Windows x86 binaries to build #948

Open
xxDark opened this issue Nov 27, 2023 · 1 comment
Open

Can't seem to get Windows x86 binaries to build #948

xxDark opened this issue Nov 27, 2023 · 1 comment

Comments

@xxDark
Copy link

xxDark commented Nov 27, 2023

Question

Hello! As the title says, I can't seem to get LWJGL to build for x86 Windows with x64 toolchain.
My steps:

set PATH_OLD=%PATH%
set LWJGL_BUILD_ARCH=x86
set LWJGL_BUILD_OFFLINE=true
set JAVA_HOME=F:\.jdks\jdk-17.0.2 // 64 bit
set PATH=F:\.jdks\jdk-17.0.2\bin;%PATH_OLD%
set VSCMD_SKIP_SENDTELEMETRY=true
vcvarsall x86
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.11.22
** Copyright (c) 2021 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'
ant clean clean-generated
ant compile-templates
...
set JAVA_HOME=F:\.jdks\jdk-17.0.2-x86 // 32 bit
set PATH=F:\.jdks\jdk-17.0.2-x86\bin;%PATH_OLD%
ant compile-native

Problem: libffi does not seem to get picked up for some reason:

   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_closure_free
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_prep_closure_loc
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_double
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_float
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_prep_cif_var
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_uint32
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_sint64
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_sint8
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_uint8
 [Compiler] org_lwjgl_opengl_GL41C.c
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_uint64
 [Compiler] org_lwjgl_opengl_GL42C.c
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_prep_cif
 [Compiler] org_lwjgl_opengl_GL43C.c
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_pointer
 [Compiler] org_lwjgl_opengl_GL44C.c
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_uint16
 [Compiler] org_lwjgl_opengl_GL45.c
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_call
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_sint32
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_closure_alloc
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_void
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_get_struct_offsets
   [Linker] org_lwjgl_system_libffi_LibFFI.obj : error LNK2001: unresolved external symbol _ffi_type_sint16
   [Linker] bin\windows\x86\build\lwjgl.dll : fatal error LNK1120: 19 unresolved externals

Thanks!

@Spasi
Copy link
Member

Spasi commented Sep 25, 2024

Hey @xxDark,

Have you made sure that PATH_OLD does not already contain a JDK? Also:

  1. Try setting up JAVA_HOME only, without changing PATH. The ant script will pick it up automatically. It's cleaner that way and you can change JDK versions at will.
  2. You may use vcvarsall amd64_x86, which sets up a 64-bit compiler that produces x86 code. It's more efficient.

@TheMrMilchmann TheMrMilchmann added Status: Awaiting Response Issues that wait on a response from its creator to be resolved. and removed Status: Awaiting Response Issues that wait on a response from its creator to be resolved. labels Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants