gpt4 book ai didi

visual-studio - 当我从 Perl 调用 cl.exe 时,为什么不生成任何输出?

转载 作者:行者123 更新时间:2023-12-04 02:24:28 26 4
gpt4 key购买 nike

我在运行 cl.exe 时遇到了一个奇怪的问题,这让我很困惑。在一个由 C/C++ 项目组成的大型 VS2008 解决方案中,我有一个项目运行一些脚本来做一些额外的处理。该项目包含一个预构建事件,它调用一个 Perl 脚本(ActiveState Perl 在机器上)。然后,此 Perl 脚本使用 /E 调用 cl.exe 以生成重定向到文件的预处理输出。 Perl 中的行如下所示:

my $foo = `"\path\to\cl.exe" @args.rsp >out.txt 2>err.txt`;

args.rsp 是一个纯文本文件,其中包含一堆 cl.exe 的命令行参数,包括 /E 以在 stdout 上获取预处理器输出。

当从 VS2008 命令提示符运行时,这个确切的命令行按预期工作。构建项目在我的 Windows XP 机器上也能正常工作。但是,在我的新 Windows 7 机器上,当我构建项目时,out.txt 最终变成空白。我还应该补充一点,在我同事的一些 Windows 7 机器上,它工作正常,而在其他一些机器上则不行。

显然存在某种配置差异,但我不知道它可能是什么。我们检查了 VS2008 SP1 和 ActiveState Perl 的匹配版本。我在 perl 脚本中尝试了无数种解决方法 - 使用 system() 而不是反引号,使用 cl.exe/P 输出到文件然后移动文件(文件为空),取消设置 VS_UNICODE_OUTPUT 环境变量(无效)。行为没有任何改变 - 手动运行命令行时会生成输出,但在该项目的预构建事件中运行时不会生成输出。

关于可能导致这种情况的配置问题有什么想法吗?我几乎无路可走。

最佳答案

对我来说听起来像是 ACL 问题。您可以更改窗口以记录访问问题,然后检查事件日志以查看哪些用户遇到访问被拒绝的错误。

我相信该设置在本地策略中 |审计政策 |审计对象访问

关于visual-studio - 当我从 Perl 调用 cl.exe 时,为什么不生成任何输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com