You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CLion中通过CMake构建链接OpenAL-Soft外部项目遇链接错误

OpenAL-Soft作为CMake外部项目链接失败问题

操作流程

我在CLion中尝试通过CMake将OpenAL-Soft作为外部项目构建并链接,具体步骤如下:

1. 下载并构建OpenAL源码

使用ExternalProject_Add配置OpenAL的下载、构建和安装路径:

ExternalProject_Add(OpenAL-lib
        GIT_REPOSITORY https://github.com/kcat/openal-soft.git
        GIT_TAG makemhr
        SOURCE_DIR ${PROJECT_BINARY_DIR}/downloaded_dependencies/OpenAL
        BINARY_DIR ${PROJECT_BINARY_DIR}/builded_dependencies/OpenAL
        INSTALL_DIR ${PROJECT_BINARY_DIR}/dependencies/OpenAL
        CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DLIBTYPE=SHARED
)

2. 配置包查找与链接

添加包查找命令和可执行文件链接配置:

find_package (OpenAL PATHS "${PROJECT_BINARY_DIR}/dependencies/OpenAL" NO_DEFAULT_PATH CONFIG REQUIRED)
find_package(OpenAL CONFIG REQUIRED)

add_executable(Nite main.cpp)
target_link_libraries(Nite PUBLIC OpenAL)

错误现象

先在未添加find_package()和target_link_libraries()命令的情况下,完成了OpenAL的下载、构建和安装。之后添加这些命令并构建整个项目时,出现链接错误:

FAILED: Nite.exe 
C:\Windows\system32\cmd.exe /C "cd . && "C:\Users\Galo\AppData\Local\Programs\CLion Nova\bin\cmake\win\x64\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\Nite.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x86\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x86\mt.exe --manifests  -- "E:\Visual Studio\Community\VC\Tools\MSVC\14.38.33130\bin\Hostx86\x86\link.exe" /nologo CMakeFiles\Nite.dir\main.cpp.obj  /out:Nite.exe /implib:Nite.lib /pdb:Nite.pdb /version:0.0 /machine:X86 /INCREMENTAL:NO /subsystem:console  dependencies\glfw\lib\glfw3dll.lib  dependencies\glm\lib\glm.lib  E:\VulkanSDK\Lib32\vulkan-1.lib  OpenAL.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK: command "E:\Visual Studio\Community\VC\Tools\MSVC\14.38.33130\bin\Hostx86\x86\link.exe /nologo CMakeFiles\Nite.dir\main.cpp.obj /out:Nite.exe /implib:Nite.lib /pdb:Nite.pdb /version:0.0 /machine:X86 /INCREMENTAL:NO /subsystem:console dependencies\glfw\lib\glfw3dll.lib dependencies\glm\lib\glm.lib E:\VulkanSDK\Lib32\vulkan-1.lib OpenAL.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST:EMBED,ID=1" failed (exit code 1181) with the following output:
LINK : fatal error LNK1181: 无法打开输入文件“OpenAL.lib”

补充信息

  • 使用-DLIBTYPE=SHARED参数构建安装后,生成的文件是OpenAL32.dll
  • 将LIBTYPE改为STATIC时,生成的文件是OpenAL32.lib

内容的提问来源于stack exchange,提问作者Galo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 20:23:30