个性化网站建设公司电话,wordpress qq邮箱留言,江苏省建设厅网站职称评审系统,南海佛山网站建设下载 OpenAL 的话#xff0c;配置环境变量到 OpenAL 1.1 SDK 就好了
我的 cmake 的 FindOpenAL 里面会添加 OpenAL 的库#xff0c;所以我不知道为什么原仓库会把那个判断是否已经存在 OpenAL 库的语句注释掉……我就加回来了
Sources\CMakeLists.txt
# OpenAL must be in…下载 OpenAL 的话配置环境变量到 OpenAL 1.1 SDK 就好了
我的 cmake 的 FindOpenAL 里面会添加 OpenAL 的库所以我不知道为什么原仓库会把那个判断是否已经存在 OpenAL 库的语句注释掉……我就加回来了
Sources\CMakeLists.txt
# OpenAL must be installed on the system, env OPENALDIR must be set
find_package(OpenALSoft)
find_package(OpenAL)
if(OPENALSOFT_FOUND)#if(OPENALSOFT_FOUND AND NOT TARGET OpenAL::OpenAL)add_library(OpenAL::OpenAL UNKNOWN IMPORTED)set_target_properties(OpenAL::OpenAL PROPERTIESIMPORTED_LOCATION ${OPENALSOFT_LIBRARY}INTERFACE_INCLUDE_DIRECTORIES ${OPENALSOFT_INCLUDE_DIR})#endif()
elseif(OPENAL_FOUND)if(NOT TARGET OpenAL::OpenAL)add_library(OpenAL::OpenAL UNKNOWN IMPORTED)endif()set_target_properties(OpenAL::OpenAL PROPERTIESIMPORTED_LOCATION ${OPENAL_LIBRARY}INTERFACE_INCLUDE_DIRECTORIES ${OPENAL_INCLUDE_DIR})
else()message(FATAL_ERROR Could not find OpenAL or OpenAL-Soft)
endif()配置了环境变量之后记得要重新打开 VS Code 才能更新到最新的环境变量
然后是配置 pkg config
https://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows
然后是安装 bzip2
我已经用 vcpkg 安装了 bzip2我也确定安装的是 x64 的设置了环境变量 VCPKG_DEFAULT_TRIPLETx64-windows
然后是在 Acid\build\Tests\Editor 中找不到 EditorTest.dll
但是我在 bin 文件夹中是可以找到的于是我就手动复制过去了
然后就是没有 glfw window 的错误
这个创建 glfw window 的时机也是有讲究的需要在创建了 Windows module 之后在那些连接到 onAddWindow 信号的 module 的创建之后在那些需要 glfw window 的 module 之前
一个 hack 的方法是记住需要 glfw window 的 module 的序号在那个序号的位置之前调用 AddWindow()
Sources\Engine\Engine.cpp
void Engine::CreateModule(Module::TRegistryMap::const_iterator it, const ModuleFilter filter) {if (modules.find(it-first) ! modules.end())return;if (!filter.Check(it-first))return;// hackif (modules.size() 10)Windows::Get()-AddWindow();但是这样肯定是跟原仓库的设计者的设计思路是相违背的
还有一种方法是在获取 glfw window 的时候判断如果自己没有 glfw window那么就创建一个
虽然照样不太优雅但是比把 Window 逻辑写到引擎初始化的底层更好
Sources\Devices\Windows.cpp
Window *Windows::GetWindow(WindowId id) {// hackif (windows.size() 0 id 0)AddWindow();if (id windows.size())return nullptr;return windows.at(id).get();
}