c++ - 在运行时链接外部库

标签 c++ cmake linker fmod

我正在尝试编译将FMOD与CMake结合使用的简单程序。编译似乎没问题,但是我的应用程序因0xC0000135为STATUS_DLL_NOT_FOUND而崩溃

我的CMakeList.txt

cmake_minimum_required(VERSION 3.7)
project(fmod-test)

set(FMOD_DIR "D:/FMOD SoundSystem/FMOD Studio API Windows")
set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)

add_executable(fmod-test ${SOURCE_FILES})

include_directories(${FMOD_DIR}/api/lowlevel/inc ${FMOD_DIR}/api/studio/inc)

link_directories("${FMOD_DIR}/api/lowlevel/lib" "${FMOD_DIR}/api/studio/lib")
target_link_libraries(fmod-test
    "${FMOD_DIR}/api/lowlevel/lib/fmod_vc.lib"
    "${FMOD_DIR}/api/studio/lib/fmodstudio_vc.lib")

我的cmake配置或环境有问题吗?
我应该将DDL放置在某个特定位置还是提供指向它们的路径,而不是在CMakeLists.txt旁边?

最佳答案

通过将api/lowlevel/libapi/studio/lib添加到PATH变量来解决。

向kvr表示感谢。

关于c++ - 在运行时链接外部库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45828237/

相关文章:

c++ - 构造函数遇到麻烦

c++ - 为什么 std::extent 应用于 auto& 产生零?

cmake 使用 PUBLIC_HEADER 将库和开发文件安装为单独的组件

c++ - 为什么删除const会给我链接器错误?

c++ - QLayout对齐小部件错误

configuration - 在不包装脚本的情况下让 CMake 从源代码中构建

c++ - CMake: “SET(PODOFO_BUILD_SHARED NOT ${PODOFO_BUILD_SHARED})”是什么意思?

c - 使可执行文件更喜欢共享对象库而不是旧版本也可以在同一个可执行文件中使用

c++ - 没有可用于 “libstdc++-6…”的源

c++ - 如何使用 typedef 和可变参数模板包装除一个模板参数之外的所有模板参数?