首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual 2008中的cl.exe包装器

Visual 2008中的cl.exe包装器
EN

Stack Overflow用户
提问于 2011-09-09 13:53:04
回答 2查看 1.1K关注 0票数 0

我在C++中为cl.exe ( Visual编译器)创建了一个包装器。为此,我更改了PATH环境变量,以便Visual首先找到我的cl.exe。在我的cl.exe中,我创建了一个进程,它使用我的cl.exe获得的参数运行真实的cl.exe

这样做的目的是过滤来自实际cl.exe的输出,以删除我们无法处理的警告。我们希望“检测64位概率问题”,因为它是伟大的,但它发出了一个警告。

警告:

cl :命令行警告D9035 :选项'Wp64‘已被废弃,并将在以后的版本中删除

我已经搜索了几天关于如何删除这个特定的警告,它是而不是警告,您可以使用代码或类似于普通警告之类的选项关闭它。

Problem:视觉工作室运行我的cl.exe,然后cl.exe运行真正的cl.exe,但从那时起,cl.exe就不再接收输出了。我通过让它调用真正的cl.exe以外的东西来测试它,我的cl.exe完全控制了输出.

任何一个cl.exe文件的输出都显示在Visual的输出框中,但是我的cl.exe不再接收来自真实cl.exe的任何输出.

我使用管道来处理我的cl.exe中的输出,它可以处理除了真正的cl.exe之外的任何东西。

为什么我的cl.exe不管理输出?Visual是否忘记了我的cl.exe,并以某种方式将自己附加到了真实的上?

此外,除了为cl.exe创建一个包装器以消除此警告之外,还有其他解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2011-09-12 15:23:52

我已经想明白了。

这个来自视觉工作室的环境变量以某种方式被用来向真实的cl.exe发出信号,将其输出发送到可视化工作室。

VS_UNICODE_OUTPUT=4209

清除它可以让我的应用程序再次处理输出。

谢谢你的帮助.

票数 1
EN

Stack Overflow用户

发布于 2011-09-11 02:07:30

看起来您重定向的是“真正的”cl.exe stdout,而不是stderr。而stderr正是人们所期望的编译器警告的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7362701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档