为什么 visual studio 找不到 soundio.h?

Why doesn't visual studio find soundio.h?

我一直在使用 visual studio 19 和 cmake。最初的 objective 是将 link 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}")

所有库都已安装并位于程序文件中。

我复制了example program from libsoundio,但是visual studio显示了一些与libsoundio相关的错误,似乎是visualstudio找不到该库,如下图所示的错误:

最奇怪的是代码可以编译,但是执行.exe时会显示以下信息:

翻译: 无法继续执行代码,因为未找到 libsoundio.dll。重新安装程序以解决问题。

为什么找不到 libsoundio?

如果您的代码已成功编译,您有两个选择:将 libsoundio.dll 复制到与 .exe 相同的文件夹中,或者将该 DLL 复制到典型的 Windows DLL 的路径,例如 C:\Windows\System32.

如果您想将应用程序部署到另一台计算机,第一种方法应该更容易。这就是 Windows 的软件作为安装程序分发的原因,它在您的机器中创建一个文件夹并复制多个文件,有时是 DLL,与 .EXE

的路径相同