首页 > 解决方案 > 为什么 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?

标签: c++visual-studiodllcmake

解决方案


如果您的代码已成功编译,您有两个选择:将DLL 复制到libsoundio.dll与..exeC:\Windows\System32

如果要将应用程序部署到另一台计算机,第一种方法应该更容易。这就是为什么 Software for Windows 以安装程序的形式分发的原因,它在您的机器中创建一个文件夹并复制多个文件,有时是 DLL,与安装程序的路径相同。.EXE


推荐阅读