在运行时链接外部库
问题描述:
我想编译使用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旁边提供路径给他们?
答
通过向PATH变量添加api/lowlevel/lib
和api/studio/lib
来解决。
对kvr的建议的荣誉。
不是一个windows的家伙,但作为第一枪尝试把dll放在可执行文件旁边,如果我没有记错,那是windows的第一个地方。我不知道如何设置DLL的其他搜索路径 – ted
还可以更新'路径'环境变量,以包括DLL的路径,如果exe是在不同的位置 - 你想保持跟踪虽然,尽量避免DLL地狱 – kvr
谢谢krv ,这有帮助 –