首页 > 解决方案 > 如何让 mingw64 链接到 Windows 上的 OpenAL

问题描述

我正在尝试获取最新的 mingw64 以链接到 OpenAL.dll。我正在使用代码块 17.12。问题是没有源文件。OpenAL SDK 只有一个 lib 文件和一个 dll。mingw64 不会链接到 lib 文件,也不会链接到 dll。如果我尝试链接到 OpenAL32.dll ld.exe 崩溃,这是错误:

x86_64-w64-mingw32-c++.exe -std=c++98 -Wall -g -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_CRT_SECURE_NO_WARNINGS -DCODEBLOCKS -DGLEW_STATIC -DGLFW_DLL -std=c++98 -IC:\projects\libs\glfw\include -IC:\projects\libs\bullet\src -IC:\projects\libs\boost -IC:\projects\libs\glew\include -IC:\projects\libs\OpenAL\include -IC:\projects\libs\libpng -IC:\projects\libs\vectorclass -c C:\backup\warlord\Warlord\Warlord\Sound.cpp -o CodeBlocksDebug\Sound.o
x86_64-w64-mingw32-g++.exe  -o CodeBlocksDebug\MercTactics.exe CodeBlocksDebug\AboutScreen.o CodeBlocksDebug\Action.o CodeBlocksDebug\ZoomToBattle.o   -lwinmm C:\projects\libs\glfw-3.2.1\lib\libglfw3.a C:\backup\warlord\Warlord\release\OpenAL32.dll C:\projects\libs\OpenAL\libs\alut.dll C:\projects\libs\glew\lib\libglew32s.a C:\projects\libs\bullet\lib\bullet.a ..\..\..\..\projects\libs\libpng\libpng.a ..\..\..\..\projects\libs\libpng\libzlib.a C:\Windows\System32\opengl32.dll -mwindows
collect2.exe: error: ld returned 5 exit status
Process terminated with status 1 (0 minute(s), 4 second(s))
1 error(s), 0 warning(s) (0 minute(s), 4 second(s))

标签: c++mingw-w64openal

解决方案


经过几个小时的搜索,我终于让它工作了。我使用 dlltool 创建了一个 .a 文件,然后它链接得很好

D:\mingw64\x86_64-w64-mingw32\bin\dlltool -d OpenAL 32.def -D OpenAL32.dll -k -a -l libopenal32.a -v


推荐阅读