c++ - 为什么 Visual Studio 找不到 soundio.h?
问题描述
我一直在使用 Visual Studio 19 和 cmake。最初的目标是将 spdlog 和 libsoundio 库链接到我的项目,为了实现它,创建了以下 CMakeFile 来编译我的项目。
cmake_minimum_required (VERSION 3.8)
set(APPNAME DrumHero)
project($APPNAME)
#C++ version
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(SOURCES src/drumhero.cpp)
set(HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/drumhero.h)
set(DEPENDENCIES_LIBS spdlogd libsoundio)
link_directories("C:/Program\ Files/libsoundio/lib" "C:/Program\ Files/spdlog/lib")
include_directories("C:/Program\ Files/libsoundio/include" "C:/Program\ Files/spdlog/include")
add_executable (${APPNAME} ${SOURCES} ${HEADERS})
target_link_libraries(${APPNAME}
PUBLIC ${DEPENDENCIES_LIBS})
set_target_properties(${APPNAME} PROPERTIES
PUBLIC_HEADER "${HEADERS}")
所有库都安装并位于 Program Files 中。
我从 libsoundio 复制了示例程序,但 Visual Studio 显示了一些与 libsoundio 相关的错误,似乎 Visualstudio 找不到该库,如下图所示的错误:
最奇怪的是代码可以编译,但是在执行.exe时会显示以下消息:
翻译:由于找不到libsoundio.dll,无法继续执行代码。重新安装程序以解决问题。
为什么找不到 libsoundio?
解决方案
如果您的代码已成功编译,您有两个选择:将DLL 复制到libsoundio.dll
与..exe
C:\Windows\System32
如果要将应用程序部署到另一台计算机,第一种方法应该更容易。这就是为什么 Software for Windows 以安装程序的形式分发的原因,它在您的机器中创建一个文件夹并复制多个文件,有时是 DLL,与安装程序的路径相同。.EXE
推荐阅读
- java - 如何使导航抽屉中的开关具有功能?
- linux-device-driver - 如何使设备(以太网)使用特定的驱动程序(用户制作的网络驱动程序)
- excel - 为什么分配给单元的宏会失败?
- python - 将列表中的字符串添加到一起
- flutter - 用户登录后不会出现 WebView
- laravel-5 - ReflectionException 类电子邮件不存在 php artisan queue:work
- tensorflow - SSD 盗梦空间 v2。VGG16 特征提取器是否被 Inception v2 取代?
- angular - Angular RxJS:事件发出两次
- java - 我如何计算java中节点列表结构的总数
- mongodb - 收集分组字段的值