way 1
网上找了几个都不行,原创:使用Qt Creator作为Linux IDE,实现CMake编译和gdb单步调试
,也不行,纯记下作其它参考,最终只能自己看CMAKELISTS编写了
暴力点,上代码看,如下
# 设置一个可执行文件名-->exe_name,这个不用说
add_executable(exe_name src/test.cpp src/test.h)
# 设置可执行文件exe_name的本地(编译机)安装目录-->/tmp
set(EXECUTABLE_OUTPUT_PATH "/tmp/")
# 设置可执行文件exe_name的远程(待部署机)安装目录-->/tmp
set(CMAKE_INSTALL_PREFIX "/tmp/test")
# 配置安装映射 目标将安装到远程 /tmp/exe_name --> /tmp/bin/exe_name
install(FILES ${EXECUTABLE_OUTPUT_PATH}/exe_name
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
)
添加到CMAKELISTS里后执行cmake,查看项目里的部署地址可能仍没有,再执行下RUN,再次查看有了如下图
OK,可以在线调试了
way 2
macro(add_deployment_file SRC DEST)
file(RELATIVE_PATH path ${CMAKE_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR})
file(APPEND "${CMAKE_BINARY_DIR}/QtCreatorDeployment.txt"
"${path}/${SRC}:${DEST}\n")
endmacro()
macro(add_deployment_directory SRC DEST)
file(GLOB_RECURSE files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
"${SRC}/*")
foreach(filename ${files})
get_filename_component(path ${filename} PATH)
add_deployment_file("${filename}" "${DEST}/${path}")
endforeach(filename)
endmacro()
set(CMAKE_INSTALL_PREFIX "/opt/mycompany")
if(DEPLOYED_REMOTELY)
# Write base installation path as first line.
file(WRITE "${CMAKE_BINARY_DIR}/QtCreatorDeployment.txt"
"${CMAKE_INSTALL_PREFIX}\n")
# Append mapping for executable.
file(RELATIVE_PATH relative_exe_path
"${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}")
add_deployment_file(relative_exe_path bin)
# Append mapping for single library file.
add_deployment_file("lib/other/libMagic.so" "lib")
# Append all 3D CAD files from local directory "cad".
add_deployment_directory("cad" ".")
else()
# The original install commands go here for local deployment.
...
endif()
option(DEPLOYED_REMOTELY "Turn on for remote deployment" OFF)