带有 glfw3 和高兴的 OpenGL 生成文件

问题描述

我正在尝试进行跨平台编译以在 Linux 上构建一个项目,该项目将在 Windows 上使用。

但我被这些链接错误所困扰:

/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'

我使用这些标志来链接库:

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

为了构建和编译库,我使用了这些 premake 文件中的 makefile。

为高兴而预制:

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"

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/osmesa_context.c"
    }

    defines 
    { 
        "_GLFW_WIN32","_CRT_SECURE_NO_WARNINGS"
    }

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

filter "configurations:Release"
    runtime "Release"
    optimize "on"
  • 平台:Ubuntu
  • C++ 编译器:x86_64-w64-mingw32-g++
  • C 编译器:x86_64-w64-mingw32-gcc

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)