使用Astra深度相机时CMake报错:未知命令set_debug_working_dir
解决CMake编译报错:Unknown CMake command "set_debug_working_dir"
问题原因
set_debug_working_dir并非CMake原生命令,它是Astra SDK自定义的辅助函数。出现该错误通常是当前CMakeLists.txt未正确引入定义该函数的SDK脚本,或是使用的SDK版本与示例代码不匹配。
修复方案
方案1:确认引入Astra SDK的CMake脚本
检查项目根目录的CMakeLists.txt,确保已正确加载Astra SDK的配置脚本,通常包含类似代码:
find_package(Astra REQUIRED) include(${ASTRA_CMAKE_DIR}/AstraSDK.cmake)
若缺少这部分内容,添加后重新编译。
方案2:用CMake原生属性替代自定义命令
如果找不到定义set_debug_working_dir的脚本,可直接使用CMake原生属性设置调试工作目录,替换报错行:
针对Visual Studio:
if(MSVC) set_target_properties(${_projname} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "$(TargetDir)" ) endif()
针对跨平台场景(如CLion、Makefile):
先设置输出目录,再将工作目录指向该路径:
set_target_properties(${_projname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/Debug" )
修改后的完整CMakeLists片段:
set (_projname "DepthReaderEventCPP") set (${_projname}_SOURCES main.cpp ${SAMPLE_COMMON_DIR}/key_handler.h ) add_executable(${_projname} ${${_projname}_SOURCES}) set_target_properties(${_projname} PROPERTIES FOLDER "${SAMPLE_DIR_FOLDER}cpp-api") target_link_libraries(${_projname} ${ASTRA_LIBRARIES}) # 替换原set_debug_working_dir行 if(MSVC) set_target_properties(${_projname} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "$(TargetDir)" ) endif() add_astra_sdk_dependency(${_projname}) install_sample(${_projname})
内容的提问来源于stack exchange,提问作者Chiruyo_Isaki
相关产品推荐
相关产品推荐

