1

I'm trying to make a cross-platform compilation to build a project on Linux, which will be used on windows.

But I'm stuck with these linking errors:

/usr/bin/ld: bin/Release-linux-x86_64/glad/libglad.a(glad.o):glad.c:(.text+0x2aa6): undefined reference to `__imp_GetProcAddress'
/usr/bin/ld: bin/Release-linux-x86_64/glad/libglad.a(glad.o):glad.c:(.text+0x4abf): undefined reference to `__imp_LoadLibraryW'
/usr/bin/ld: bin/Release-linux-x86_64/glad/libglad.a(glad.o):glad.c:(.text+0x4aec): undefined reference to `__imp_GetProcAddress'
/usr/bin/ld: bin/Release-linux-x86_64/glad/libglad.a(glad.o):glad.c:(.text+0x4b19): undefined reference to `__imp_FreeLibrary'

I'm using these flags to link libraries:

LINKCMD = $(CXX) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS)
LIBS += bin/Release-linux-x86_64/glad/libglad.a bin/Release-linux-x86_64/GLFW/libGLFW.a
LDDEPS += bin/Release-linux-x86_64/GLFW/libGLFW.a bin/Release-linux-x86_64/glad/libglad.a
ALL_LDFLAGS += $(LDFLAGS) -L/usr/lib64 -m64 -s -lglfw -pthread -lGLU -lGL -lrt -lXrandr -lXxf86vm -lXi -lXinerama -lX11 -ldl

To build and compile libraries I'm using makefile from these premake files.

premake for glad:

project "Glad"
kind "StaticLib"
language "C"
staticruntime "on"

targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

files
{
    "include/glad/glad.h",
    "include/KHR/khrplatform.h",
    "src/glad.c"
}

includedirs
{
    "include"
}

filter "configurations:Debug"
    runtime "Debug"
    symbols "on"

filter "configurations:Release"
    runtime "Release"
    optimize "on"

premake for glfw:

project "GLFW"
kind "StaticLib"
language "C"

targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

files
{
    "include/GLFW/glfw3.h",
    "include/GLFW/glfw3native.h",
    "src/glfw_config.h",
    "src/context.c",
    "src/init.c",
    "src/input.c",
    "src/monitor.c",
    "src/vulkan.c",
    "src/window.c"
}
filter "system:linux"
    pic "On"

    systemversion "latest"
    staticruntime "On"

    files
    {
        "src/x11_init.c",
        "src/x11_monitor.c",
        "src/x11_window.c",
        "src/xkb_unicode.c",
        "src/posix_time.c",
        "src/posix_thread.c",
        "src/glx_context.c",
        "src/egl_context.c",
        "src/osmesa_context.c",
        "src/linux_joystick.c"
    }

    defines
    {
        "_GLFW_X11"
    }

filter "system:windows"
    systemversion "latest"
    staticruntime "On"

    files
    {
        "src/win32_init.c",
        "src/win32_joystick.c",
        "src/win32_monitor.c",
        "src/win32_time.c",
        "src/win32_thread.c",
        "src/win32_window.c",
        "src/wgl_context.c",
        "src/egl_context.c",
        "src/osmesa_context.c"
    }

    defines 
    { 
        "_GLFW_WIN32",
        "_CRT_SECURE_NO_WARNINGS"
    }

filter "configurations:Debug"
    runtime "Debug"
    symbols "on"

filter "configurations:Release"
    runtime "Release"
    optimize "on"
  • Platform: Ubuntu
  • C++ Compilator: x86_64-w64-mingw32-g++
  • C Compilator: x86_64-w64-mingw32-gcc
Omegaelit
  • 23
  • 4

0 Answers0