在Qtcreator中,cmake项目如何部署到远程调试

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值