我如何使用g ++静态链接外部库?

问题描述 投票:0回答:1

我正在尝试构建一个程序来测试外部库的使用。当我尝试构建它时,出现一堆“未定义参考”错误。

我用于编译的确切行是:

g++ main.cpp -L"../Dependencies/GLFW" -lglfw3

错误是:

Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
C:\Users\SubSm\AppData\Local\Temp\ccQmEHZX.o:main.cpp:(.text+0x96): undefined reference to `_imp__glClear@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/window.obj):(.text$mn+0xa): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/window.obj):(.text$mn+0x45): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/window.obj):(.text$mn+0x237): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/init.obj):(.text$mn+0xa): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/init.obj):(.text$mn+0x41): undefined reference to `_imp____stdio_common_vsprintf'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/init.obj):(.text$mn+0x32b): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/context.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/context.obj):(.text$mn+0x3d0): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/context.obj):(.text$mn+0x405): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/context.obj):(.text$mn+0x44e): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/context.obj):(.text$mn+0x4d6): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/context.obj):(.text$mn+0x508): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/context.obj):(.text$mn+0x54e): more undefined references to `@__security_check_cookie@4' follow
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x3a): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x143): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0xa): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x98): undefined reference to `_imp__CreateDIBSection@24'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0xc8): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0xdd): undefined reference to `_imp__CreateBitmap@20'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x100): undefined reference to `_imp__DeleteObject@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x10f): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x1b5): undefined reference to `_imp__DeleteObject@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x1fc): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x187): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x33c): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7a): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x8c): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x115): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x6b): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_window.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x49): undefined reference to `_imp__GetDeviceCaps@8'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0xa): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x2b): undefined reference to `_imp__CreateDCW@16'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x3b): undefined reference to `_imp__GetDeviceGammaRamp@8'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x42): undefined reference to `_imp__DeleteDC@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x91): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x3b): undefined reference to `_imp__GetDeviceCaps@8'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0xa): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x77): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x7): undefined reference to `__security_cookie'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/win32_monitor.obj):(.text$mn+0x7f): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/wgl_context.obj):(.text$mn+0x87): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/wgl_context.obj):(.text$mn+0x13e): undefined reference to `_imp__DescribePixelFormat@16'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/wgl_context.obj):(.text$mn+0x6e0): undefined reference to `_imp__DescribePixelFormat@16'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/wgl_context.obj):(.text$mn+0x814): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/wgl_context.obj):(.text$mn+0x857): undefined reference to `@__security_check_cookie@4'
../Dependencies/GLFW/glfw3.lib(glfw.dir/Release/wgl_context.obj):(.text$mn+0x6c): undefined reference to `_imp__SwapBuffers@4'
collect2.exe: error: ld returned 1 exit status

我正在尝试链接GLFW

c++ g++ mingw opengl-3
1个回答
1
投票

手册说您必须链接到更多,而不仅仅是glfw3

GLFW: Building applications

在Windows上使用MinGW或Visual C ++

GLFW库的静态版本名为glfw3。使用此版本时,还必须链接到GLFW使用的某些库。

[使用MinGW将应用程序与GLFW的静态版本链接时,还必须显式链接gdi32。其他工具链(包括MinGW-w64)将其与其他依赖项(例如user32kernel32)一起包含在默认库集中。

GLFW DLL的链接库名为glfw3dll。在编译使用GLFW DLL版本的应用程序时,您需要定义GLFW_DLLbefore

任何包含GLFW标头的内容。这可以通过编译器开关或在源代码中定义来完成。
© www.soinside.com 2019 - 2024. All rights reserved.