通用宏设置

  • exe项目根据平台配置设置输出路径;

  • dll项目根据平台配置设置输出路径,dll文件lib文件分别输出到自己的路径;

  • 中间文件根据平台配置项目设置输出路径;

  • 设置远程调试命令远程工作目录远程服务器目录部署目录等;

Common.props,exe项目和dll项目添加。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
<AppOutDir>$(SolutionDir)_Bin\$(PlatformShortName)$(Configuration)</AppOutDir>
<DllOutDir>$(SolutionDir)_Dll\$(PlatformShortName)$(Configuration)\bin</DllOutDir>
<IntOutDir>$(SolutionDir)_Tmp\$(ProjectName)\$(PlatformShortName)$(Configuration)</IntOutDir>
<IncOutDir>$(SolutionDir)_Dll\inc</IncOutDir>
<LibOutDir>$(SolutionDir)_Dll\$(PlatformShortName)$(Configuration)\lib</LibOutDir>
<RemoteDbgCmd>C:\Bin\GlDevDemo\GlDevDemod.exe</RemoteDbgCmd>
<RemoteDbgWorkDir>C:\Bin\GlDevDemo</RemoteDbgWorkDir>
<RemoteServer>VMLINK001</RemoteServer>
<DeployDir>\\$(RemoteServer)\Bin\GlDevDemo</DeployDir>
</PropertyGroup>
<PropertyGroup>
<!-- exe、dll等文件输出的目录 -->
<OutDir Condition="'$(ConfigurationType)'=='Application'">$(AppOutDir)\</OutDir>
<OutDir Condition="'$(ConfigurationType)'=='DynamicLibrary'">$(DllOutDir)\</OutDir>
<!-- obj等中间文件输出的目录 -->
<IntDir>$(IntOutDir)\</IntDir>
<!-- 头文件目录 -->
<IncludePath>$(IncOutDir);$(IncludePath)</IncludePath>
<!-- 库文件目录 -->
<LibraryPath>$(LibOutDir);$(LibraryPath)</LibraryPath>
<!-- 输出文件的文件名 -->
<TargetName Condition="'$(Configuration)'=='Debug'">$(ProjectName)d</TargetName>
<TargetName Condition="'$(Configuration)'=='Release'">$(ProjectName)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<!-- 让lib在debug和release情况下名称相同,方便导入 -->
<ImportLibrary Condition="'$(ConfigurationType)'=='DynamicLibrary'">$(LibOutDir)\$(ProjectName).lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
</Project>

DLL项目宏设置

  • 利用生成后事件复制头文件dll文件pdb文件到指定文件夹;

PostBuild.props,dll项目添加。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<PostBuildEvent>
<Command>@echo off
setlocal enabledelayedexpansion rem 创建本项目的头文件路径
set dir="$(IncOutDir)"
if not exist %dir% (
md %dir%
) rem 创建输出路径,确保路径存在
set dir="$(AppOutDir)"
if not exist %dir% (
md %dir%
) rem 源文件
set src[0]="$(ProjectDir)GlXdma.h"
set src[1]="$(TargetPath)"
set src[2]="$(TargetDir)$(TargetName).pdb" rem 目标文件
set dst[0]="$(IncOutDir)\GlXdma.h"
set dst[1]="$(AppOutDir)\$(TargetFileName)"
set dst[2]="$(AppOutDir)\$(TargetName).pdb" rem 复制文件
for /L %%n in (0, 1, 2) do (
echo copy !src[%%n]! to !dst[%%n]!
copy !src[%%n]! !dst[%%n]!
)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
</Project>

添加属性

  • 项目的属性管理器中添加好上面的Props文件

远程调试设置

  • 项目->调试,选中远程 Windows 调试器,按下图设置好

  • 项目属性->部署

参考

在 Visual Studio 中远程调试 C++ 项目

  • 另用secpol.msc打开本地安全策略,添加账户作为服务登陆权限,以启用Visual Studio 2019 Remote Debugger服务:

    经测试桌面程序不能用服务调试。

EXE项目和DLL项目远程调试、Props设置说明的更多相关文章

  1. JavaWeb项目的部署以及远程调试

    Linux环境下软件的安装 Linux环境下的程序的安装.更新.卸载和查看. rpm 命令:相当于windows程序的添加/卸载程序,进程程序的安装,查看,卸载. 本地程序安装:rpm -ivh 程序 ...

  2. springboot项目使用idea开启远程调试

    远程调试是调试服务器的有效手段,远程服务器运行的应用可以在本地代码中打断点调试,能让开发人员准确定位服务器上的问题. 一.开启远程调试前提:本地代码与服务器代码一致, 二.开启远程调试步骤 1.开发工 ...

  3. 七. jenkins部署springboot项目(4)-linux环境--远程调试

    前提:linux环境,jenkins服务器和springboot服务器不在一台机器. linux环境,jenkins这里就不说了,主要说下和windows环境的不同. 1. jenkins服务器连接s ...

  4. Eclispe远程调试tomcat设置

    首先在catelina.sh中添加 JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=23787,server=y,su ...

  5. VS调试DLL项目代码

    如果DLL有对应的lib文件,并且dll工程和调用它的exe属于同一个解决方案,直接打断点调试就可以.例如OSG解决方案中的例子程序可以直接调试osgUtil模块的代码. 如果A.exe项目和A.dl ...

  6. 看图说话,idea 远程调试 tomcat下项目

    tomcat中部署了项目,准备测试远程调试. 1.配置idea 2. 修改catalina.bat,并启动tomcat catalina.bat: ...rem 下面的参数就是从idea配置中复制过来 ...

  7. Java项目开启远程调试(tomcat、springboot)

    当我们运行一个项目的时候,一般都是在本地进行debug.但是如果是一个分布式的微服务,这时候我们选择远程debug是我们开发的利器. 环境apache-tomcat-8.5.16 Linux 如何启用 ...

  8. VC++ 6.0远程调试配置

    VC开发环境之所以提供远程调试的能力,是因为有些情况下单机调试会让你崩溃掉...比如,调试GUI程序的WM_PAINT消息,因为要单步调试,所以调试器会对界面的重绘产生副作用(Heisenberg不确 ...

  9. DELPHI XE8 远程调试

    最近公司项目遇到问题需要远程调试搜索了一下怎么用 发现网上能找到最新的是XE2上的说明现在已经有一些不同了 按照上面的方法不能调试成功 经过测试XE8的方法如下:1.项目编译设置:2.在被调试电脑上运 ...

  10. VS2010远程调试C#程序

    场景: 客户的计算机运行程序出现异常,由于办公场所不在一起,无法直接在客户的机器上调试.此时希望可以直接在开发人员的计算机(本地机器)上远程调试客户机上的软件. 假设: 本地机器的系统账户为 GIS, ...

随机推荐

  1. The Missing Semester - 第二讲 学习笔记

    第二讲 Shell 工具和脚本 课程视频地址: https://www.bilibili.com/video/BV1Vv411v7FR 本机学习使用平台:虚拟机ubuntu18.04.6 主题一:Sh ...

  2. 【多线程与高并发】- synchronized锁的认知

    synchronized锁的认知 生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 目录 s ...

  3. 【ARM架构】armv8 系统安全概述

    ARMv8-A 系统中的安全 一个安全或可信的操作系统保护着系统中敏感的信息,例如,可以保护用户存储的密码,信用卡等认证信息免受攻击. 安全由以下原则定义: 保密性:保护设备上的敏感信息,防止未经授权 ...

  4. SQL语句中 left join 后用 on 还是 where,区别大了!

    前天写SQL时本想通过 A left B join on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条. 后来发现 join on and 不会过滤结果记录条数,只会根据and后的 ...

  5. 记录一个cpu彪高的BUG处理--jvm调优

    业务场景:游戏行业,N个服务器,要进行大批量的合服处理,玩家数据会上升,从新整理和服务器的分配情况和逻辑处理,正常开发后,当天白天正常,然后晚上高峰期开始玩家频繁反馈无法登录~~~ 处理逻辑: 优先确 ...

  6. lama-cleaner全部命令行参数

    usage: main.py [-h] [--host HOST] [--port PORT] [--config-installer] [--load-installer-config] [--in ...

  7. 时钟切换电路(无毛刺)——clock switching glitch free

    0.引言 随着越来越多的多频时钟被应用在今天的芯片中,尤其是在通信领域中,经常需要在芯片运行时切换时钟线的源时钟.这通常是通过在硬件中复用两个不同的频率时钟源,并通过内部逻辑控制多路选择器选择线来实现 ...

  8. ansible 离线部署

    1.安装 python 环境 wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh s ...

  9. Git提交代码报错husky > pre-commit,

    拉取了新项目以后,git突然不能用了   报husky > pre-commit, 解决办法:进入你的项目显示隐藏git文件  进入git文件   找到  hooks / pre-commit  ...

  10. #加IPV6路由

    #加IPV6路由route -A inet6 add 2409:802f:6005:4204::31:0/123 gw 2409:805b:6005:4218::41f:1#路由写入网卡配置文件vi ...