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