通用宏设置

  • 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. LeetCode-2038 如果相邻两个颜色均相同则删除当前颜色

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-colored-pieces-if-both-neighbors-are-the-s ...

  2. .Babylon格式的模型转化为glb模型,并使用ThreeJS加载显示

    问题描述:手里有几个.babylon格式的三维模型,但是没用过babylon,只对ThreeJS熟悉:但是最新的ThreeJS里发现已经没有BabylonLoader的加载器,能查到的暮志未晚提供的例 ...

  3. 野火FreeRTOS第九章(任务延时列表)实验意外解决办法

    书中说:main()函数内容与第8章一样,无需改动. 但实际代码中,添加了在开启调度前关闭中断的函数,如下红色代码所示: int main(void) { /* 硬件初始化 */ /* 将硬件相关的初 ...

  4. xlwings rest api

    https://pbihub.cn/blog/964/created_at https://docs.xlwings.org/zh_CN/latest/rest_api.html xlwings &g ...

  5. 找出一组数中出现次数最多的数(csp201312-1)

    问题描述:找出一组数字出现次数最多的数,如果有多个这样的数,输出其中最小的一个. 算法:sort排序,遍历数组,每遍历一个数,查出它已经出现的次数. 代码: #include<bits/stdc ...

  6. 前端使用axios如何提交表单请求

    //使用FormData创建参数 let formData = new FormData(); formData.append("jsonData", JSON.stringify ...

  7. oracle 2个数组列,剔除数组重复的数据。

    一.下面这样不规则的,数据如何剔除掉.循环筛选replace替换掉. 序号 正常时间 剔除时间 1    2022-12-19,2022-12-20,2022-12-21,2022-12-22,202 ...

  8. CentOS 7 yum安装MongoDB

    1.配置MongoDB的yum源 cd /etc/yum.repos.d vim mongodb-org-6.0.repo 2.添加下载配置文件(这里使用阿里云的源),保存退出 [mngodb-org ...

  9. 蓝牙mesh组网实践(手机配网例程改低功耗)

    目录 在22年7月版本的CH583EVT更新之后,582芯片的adv_vendor_self_provision_with_peripheral例程,适配了wch mesh手机app,支持了OTA,成 ...

  10. uni消息推送

    //APP.vuegetUser(){//获取客户端标识 消息推送 // #ifdef APP-PLUS var pinf = plus.push.getClientInfo(); var cid = ...