Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在运行时链接外部库_C++_Cmake_Linker_Fmod - Fatal编程技术网

C++ 在运行时链接外部库

C++ 在运行时链接外部库,c++,cmake,linker,fmod,C++,Cmake,Linker,Fmod,我正在尝试编译一个使用FMOD和CMake的简单程序。编译似乎还可以,但我的应用程序在0xc000135状态为“未找到DLL”时崩溃 我的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.c

我正在尝试编译一个使用FMOD和CMake的简单程序。编译似乎还可以,但我的应用程序在
0xc000135
状态为“未找到DLL”时崩溃

我的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的其他搜索路径是如何设置的。如果exe位于不同的位置,也可以更新“path”环境变量以包含dll的路径-但是如果您想跟踪,请尝试避免dll hell谢谢krv,这很有帮助