使用vs的命令行工具devenv编译的时候,可以传入宏参数到程序吗

yuhaouestc 2018-11-09 03:34:56
现在有个需求,大概就是编译的时候指定版本号,然后传入到程序,这样生成的dll就有对应的版本了。
不要问我为啥这样做,公司编译环境导致的,难受
...全文
399 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztenv 版主 2018-11-24
  • 打赏
  • 举报
回复
必须可以的,不过在命令行调用cl的话,还需要调用link;然后打开命令行以后还需要执行vs目录下的vcvarsall.bat批处理;然后命令行的参数,自己学学吧,有很多参数;
  • 打赏
  • 举报
回复
引用 4 楼 jingkesi 的回复:
[quote=引用 3 楼 zjq9931 的回复:] [quote=引用 2 楼 jingkesi 的回复:] [quote=引用 1 楼 zjq9931 的回复:] 批处理可以做: set /p build_version_number=请输入产品版本号: powershell -Command "(gc ../bin/config/version.h) -replace '$VERSION$', '%build_version_number%' | Out-File ../bin/config/version.h" 上面的version.h是是我的工程中存放版本信息的文件,你可以指定你的。$VERSION$是要替换的标记。 完成上面的处理后,再编译。
powershell -Command 是进入.h文件把$VERSION$标记替换了然后在输入到.h里面? 能用简单的批处理命令执行吗 [/quote] 是的,我的工程就是这样做的。[/quote] 再问下$VERSION$在.h里面是什么,宏定义吗?[/quote] 不是宏定义,是自己定义的要替换的字符串。明显一些。 不替换编译不过。
yuhaouestc 2018-11-13
  • 打赏
  • 举报
回复
引用 6 楼 zjq9931 的回复:
[quote=引用 4 楼 jingkesi 的回复:] [quote=引用 3 楼 zjq9931 的回复:] [quote=引用 2 楼 jingkesi 的回复:] [quote=引用 1 楼 zjq9931 的回复:] 批处理可以做: set /p build_version_number=请输入产品版本号: powershell -Command "(gc ../bin/config/version.h) -replace '$VERSION$', '%build_version_number%' | Out-File ../bin/config/version.h" 上面的version.h是是我的工程中存放版本信息的文件,你可以指定你的。$VERSION$是要替换的标记。 完成上面的处理后,再编译。
powershell -Command 是进入.h文件把$VERSION$标记替换了然后在输入到.h里面? 能用简单的批处理命令执行吗 [/quote] 是的,我的工程就是这样做的。[/quote] 再问下$VERSION$在.h里面是什么,宏定义吗?[/quote] 不是宏定义,是自己定义的要替换的字符串。明显一些。 不替换编译不过。[/quote] 谢了,我用的set CL/Ddefine=1 可以定义宏,但是好像只能赋值为整数
赵4老师 2018-11-12
  • 打赏
  • 举报
回复
搜“MsBuild”
yuhaouestc 2018-11-12
  • 打赏
  • 举报
回复
引用 3 楼 zjq9931 的回复:
[quote=引用 2 楼 jingkesi 的回复:] [quote=引用 1 楼 zjq9931 的回复:] 批处理可以做: set /p build_version_number=请输入产品版本号: powershell -Command "(gc ../bin/config/version.h) -replace '$VERSION$', '%build_version_number%' | Out-File ../bin/config/version.h" 上面的version.h是是我的工程中存放版本信息的文件,你可以指定你的。$VERSION$是要替换的标记。 完成上面的处理后,再编译。
powershell -Command 是进入.h文件把$VERSION$标记替换了然后在输入到.h里面? 能用简单的批处理命令执行吗 [/quote] 是的,我的工程就是这样做的。[/quote] 再问下$VERSION$在.h里面是什么,宏定义吗?
  • 打赏
  • 举报
回复
引用 2 楼 jingkesi 的回复:
[quote=引用 1 楼 zjq9931 的回复:] 批处理可以做: set /p build_version_number=请输入产品版本号: powershell -Command "(gc ../bin/config/version.h) -replace '$VERSION$', '%build_version_number%' | Out-File ../bin/config/version.h" 上面的version.h是是我的工程中存放版本信息的文件,你可以指定你的。$VERSION$是要替换的标记。 完成上面的处理后,再编译。
powershell -Command 是进入.h文件把$VERSION$标记替换了然后在输入到.h里面? 能用简单的批处理命令执行吗 [/quote] 是的,我的工程就是这样做的。
yuhaouestc 2018-11-09
  • 打赏
  • 举报
回复
引用 1 楼 zjq9931 的回复:
批处理可以做: set /p build_version_number=请输入产品版本号: powershell -Command "(gc ../bin/config/version.h) -replace '$VERSION$', '%build_version_number%' | Out-File ../bin/config/version.h" 上面的version.h是是我的工程中存放版本信息的文件,你可以指定你的。$VERSION$是要替换的标记。 完成上面的处理后,再编译。
powershell -Command 是进入.h文件把$VERSION$标记替换了然后在输入到.h里面? 能用简单的批处理命令执行吗
  • 打赏
  • 举报
回复
批处理可以做: set /p build_version_number=请输入产品版本号: powershell -Command "(gc ../bin/config/version.h) -replace '$VERSION$', '%build_version_number%' | Out-File ../bin/config/version.h" 上面的version.h是是我的工程中存放版本信息的文件,你可以指定你的。$VERSION$是要替换的标记。 完成上面的处理后,再编译。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧