c++ - 如何让 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))
解决方案
经过几个小时的搜索,我终于让它工作了。我使用 dlltool 创建了一个 .a 文件,然后它链接得很好
D:\mingw64\x86_64-w64-mingw32\bin\dlltool -d OpenAL 32.def -D OpenAL32.dll -k -a -l libopenal32.a -v
推荐阅读
- python - lemmatize和去除停用词后的频率分布
- c# - EPPlus 创建的 Excel 表格不会将公式传播到新行
- swift - 使用可编码的 Swift JSON 解码找到了一个字符串/数据
- php - 如何将 API 响应分成 2 个数组?
- python - 对不同视图的 Python Django POST 请求
- blockchain - 我可以在以太坊上存储像 excel 文件这样的数据吗?
- javascript - 使用按钮(也是图像)更改图像 - Javascript
- air - 在 AIR 的工作目录中运行可执行文件
- sql - 如何在 SQL Server 上将行作为标题
- java - 将项目上的鼠标点击存储到数组中