[✔️]openal/openalut 编译使用

简介: [✔️]openal/openalut 编译使用

在linux环境下编译


  • usr/local/bin/libopenal.so


git clone https://github.com/JogAmp/openal-soft
cd build
cmake ..
make
sudo make install # 安装


  • usr/local/bin/libalut.so


git clone https://github.com/vancegroup/freealut
mkdir build
cd build
cmake ..
sudo make install


在linux中非常顺利,都能编译通过


在windows下编译


openal的编译使用cmake可以正常编译通过,但是到了alut就出现了问题


find_package(OpenAL REQUIRED)


无法找到OpenAL,在linux中没有遇到这个问题是因为make install已经正确将OpenAl安装到了usr/local/bin,并且在usr/local/bin/cmake下有相应的make文件,保证cmake可以正常识别到。


windows下CMake如何正确find_packge模块呢?其实cmake自身也有关于OpenAl的查找逻辑:


  • cmake\share\cmake-3.25\Modules\FindOpenAL.cmake


find_path(OPENAL_INCLUDE_DIR al.h
 HINTS
   ENV OPENALDIR
 PATHS
   ~/Library/Frameworks
   /Library/Frameworks
   /opt
   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
 PATH_SUFFIXES include/AL include/OpenAL include AL OpenAL
 )
find_library(OPENAL_LIBRARY
 NAMES OpenAL al openal OpenAL32
 HINTS
   ENV OPENALDIR
 PATHS
   ~/Library/Frameworks
   /Library/Frameworks
   /opt
   [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
 PATH_SUFFIXES libx32 lib64 lib libs64 libs ${_OpenAL_ARCH_DIR}
 )  


可以看到是从OPENALDIR环境变量中查找,所以只需要环境变量中有指向包含al.h OpenAl32.dll的目录即可


设置环境变量后,一定要记得重启CMD环境,否则环境变量不生效


alut的注意事项


OpenGL有glut,同理OpenAL也有alut。


alut是动态库,注意alut.dll的输出路径:


image.png


引用alut的时候,记得alut.h头文件,直接将alut的源码放到项目是不行的,因为alut的接口都声明了dll export,所以不得不编译出dll后放到项目中。


alut本质上还是对openal的一层封装,只是简化了使用难度,因为openal本身也没有几个函数,所以alut的函数也不多,所以不建议使用alut,直接使用openal能够让自己对api更熟悉。


image.png

目录
相关文章
|
监控 物联网 编解码
流媒体方案之FFmpeg——实现物联网视频监控项目
流媒体方案之FFmpeg——实现物联网视频监控项目
流媒体方案之FFmpeg——实现物联网视频监控项目
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Spooling技术简单熟悉
Spooling技术简单熟悉
310 0
|
12月前
|
自然语言处理 机器人 开发者
大模型的综合分析报告
- **性能**:所提及的模型在性能上均表现出色,特别是在语言生成和理解方面。参数规模较大的模型(如DeepSeek-LLM-67B-Chat、Yi-1.5-9B-Chat等)通常能提供更为丰富的语言处理能力。 - **显存**:显存需求因模型参数规模而异,但一般较大规模的模型需要较高配置的硬件支持。 - **生态**:Llama、GLM等模型在开源社区中较为受欢迎,拥有一定的用户基础和生态支持。其他模型可能处于发展初期,生态支持有待加强。 - **更新频率和时间**:具体更新频率可能因开发者团队和模型版本而异。但一般而言,开源模型可能会不断更新以改进性能和功能。 - **效果评估**:在对话
Cmake生成指定vs版本的工程文件
本文简单总结了使用 cmake 生成 visual studio 工程文件的过程
|
Linux
CMake在linux上的使用
这篇文章介绍了在Linux系统上使用CMake的基本步骤,包括安装CMake、创建和编辑CMakeLists.txt文件、生成构建文件以及编译和安装项目的命令。
583 0
|
存储 虚拟化
使用DiskGenius工具来实现物理机迁移虚拟机,实现虚拟化
【9月更文挑战第1天】使用 DiskGenius 工具可将物理机迁移到虚拟机,实现系统与数据的虚拟化。此过程包括:安装 DiskGenius 和准备虚拟化平台;备份物理机数据;使用 DiskGenius 备份磁盘;在虚拟化软件中创建新虚拟机并导入磁盘备份;配置及调整虚拟机设置;测试性能并优化资源分配。这有助于测试、开发及系统管理。
1790 5
|
网络协议 Ubuntu Linux
会Linux系统上配IPv6地址的网工,那真是老6了!
会Linux系统上配IPv6地址的网工,那真是老6了!
515 0
|
机器学习/深度学习 人工智能 监控
如何成为机器学习工程师
机器学习工程师是一个综合要求很高的交叉学科岗位,要求从业者学习很多必要技能和工具,以应对实际项目中遇到的各种挑战。 本文能为励志成为机器学习工程师的人提供一个清晰的成长路线图。
931 1
如何成为机器学习工程师
|
数据可视化 算法 C++
C++ cmake工程引入qt6和Quick 教程
C++ cmake工程引入qt6和Quick 教程
1144 0

热门文章

最新文章