[✔️]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

目录
相关文章
|
程序员 Linux Android开发
libYuv编译
安卓使用NDK编译libYuv库
538 0
|
机器学习/深度学习 运维 自然语言处理
系统程序的编译与处理
系统程序的编译与处理
|
编译器 C++
使用64位的编译工具进行编译
本文记录了使用64位的编译工具进行编译的过程
|
缓存 Java Shell
ThingsBoard详细编译指南2.4.3
ThingsBoard详细编译指南2.4.3
742 0
|
Ubuntu 编译器 Linux
[✔️]openal的编译指南
[✔️]openal的编译指南
531 0
jpegNPP编译为so
jpegNPP编译为so
94 0
|
自然语言处理
编译
编译
125 0
|
Web App开发 存储 缓存
V8 编译浅谈
本文是一个 V8 编译原理知识的介绍文章,旨在让大家感性的了解 JavaScript 在 V8 中的解析过程。
V8 编译浅谈
|
开发工具 C++ git
DCMTK-001-3.6.6编译
DCMTK-001-3.6.6编译
314 0
DCMTK-001-3.6.6编译
|
C语言
01-2.C(C程序编译步骤-gcc 编译过程)
c代码编译成可执行程序4步: 1.预处理:宏定义展开,头文件展开,条件编译,同时将代码中的注释删除,这里并不会检查语法 gcc -E hello.c -o hello.
788 0