关于VS中区分debug与release,32位与64位编译的宏定义

5 篇文章 0 订阅
4 篇文章 0 订阅
在vs编程中,常常涉及到32位和64位程序的编译,怎么判断当前编译是32位编译还是64位编译?如何判断

是debug下编译还是release下编译?因为之前用到,这里记录一下,省的忘了又要疯狂的google。

1.判断是debug编译还是release编译。
如果_DEBUG定义了表示是debug编译,否则是release编译。

2.判断是32位编译还是64位编译。
在 Win32 配置下,_WIN32 有定义,_WIN64 没有定义。在 x64 配置下,两者都有定义。即在 VC 下,_WIN32 一定有定义。
因此,WIN32/_WIN32 可以用来判断是否 Windows 系统(对于跨平台程序),而 _WIN64 用来判断编译环境是 x86 还是 x64。附一个表:

常量\定义 预定义选项 Windows.h VC编译器
WIN32 Win32 √(minwindef.h)  ×
_WIN32 × ×
_WIN64 × × x64
   
最后附上根据相应编译情况,进行有条件的链接相应静态库的示例代码,其实就是一些宏定义语句的使用:

#include "json/json.h"
#ifdef _DEBUG
#ifndef _WIN64
#pragma comment(lib,"json/json_mtd.lib")
#else
#pragma comment(lib,"json/json_mtd_x64.lib")
#endif
#else
#ifndef _WIN64
#pragma comment(lib,"json/json_mt.lib")
#else
#pragma comment(lib,"json/json_mt_x64.lib")
#endif
#endif
using namespace Json;


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Windows 上使用 VS2019 建立和编译 FFMPEG6.0 的步骤: 1. 下载 FFMPEG6.0 的源代码,并解压到一个文件夹。 2. 打开 VS2019,选择 “文件” -> “新建” -> “项目”,在弹出的对话框选择 “Visual C++” -> “空项目”。 3. 在 “解决方案资源管理器” 右键单击项目,选择 “属性”,在弹出的对话框选择 “配置属性” -> “VC++ 目录” -> “包含目录” 和 “库目录”,分别添加 FFMPEG6.0 源代码的 “include” 和 “lib” 文件夹路径。 4. 在 “解决方案资源管理器” 右键单击项目,选择 “添加” -> “现有项”,将 FFMPEG6.0 源代码的 “libavcodec”、“libavformat”、“libavutil” 和 “libswscale” 文件夹的所有 .c 和 .h 文件添加到项目。 5. 在 “解决方案资源管理器” 右键单击项目,选择 “属性”,在弹出的对话框选择 “配置属性” -> “C/C++” -> “预处理器”,添加 “HAVE_AV_CONFIG_H” 宏定义。 6. 在 “解决方案资源管理器” 右键单击项目,选择 “属性”,在弹出的对话框选择 “配置属性” -> “链接器” -> “输入”,添加以下库文件: ``` avcodec.lib avformat.lib avutil.lib swscale.lib ``` 注意:如果你想编译debug 版本,则需要添加以上库文件的对应 debug 版本,如 “avcodec.lib” -> “avcodecd.lib”。 7. 点击 “生成解决方案” 编译代码。如果编译出现错误,请检查步骤 3 和 6 是否正确设置。 8. 如果想编译release 版本,可以在 “解决方案资源管理器” 右键单击项目,选择 “配置管理器”,将配置改为 “Release”,然后再次点击 “生成解决方案” 编译代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值