C++ 如何让mingw64链接到windows上的OpenAL

C++ 如何让mingw64链接到windows上的OpenAL,c++,mingw-w64,openal,C++,Mingw W64,Openal,我正在尝试获取最新的mingw64链接到OpenAL.dll。我使用的是代码块17.12。问题是没有源文件。OpenALSDK只有一个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_WARNING

我正在尝试获取最新的mingw64链接到OpenAL.dll。我使用的是代码块17.12。问题是没有源文件。OpenALSDK只有一个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))

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

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

我不知道常规的OpenAL,但是我成功地使用了MinGW-w64。(您必须自己编译。)转到C::B编译器设置,选项卡“其他设置”并激活“编译器日志记录”完整命令行。然后重复编译并编辑带有完整消息错误的帖子。