1

我在 c# 中有一个项目,它使用绑定来使用一些 c++ 代码。c++ 代码由多个 DLL 组成,这些 DLL 使用 makefile 编译。目前我正在尝试使用调用nmake的预构建事件来运行makefile。但是,要让它找到 nmake,我需要在其中添加一行,如下所示:

"$(DevEnvDir)..\..\VC\vcvarsall.bat"

此外,即使存在该行,nmake 也不会在输出窗口中产生任何输出。它也不会抛出任何错误。我尝试将输出重定向到一个文件,但它什么也没写。我已经在一个普通的 shell 中重现了我的预构建事件中的所有步骤,它工作正常。我想我一定是错过了什么。为什么 Visual Studio 没有为我的预构建事件提供 Visual Studio shell?有没有更好的方法来运行这个makefile?如果没有,有没有人知道为什么 nmake 不产生任何输出?

编辑:哦!nmake 没有运行,因为我忘记在行首添加“call”,即:

call "$(DevEnvDir)..\..\VC\vcvarsall.bat"
4

1 回答 1

1

我经常构建非 VS 项目(有时使用 nmake,有时使用其他构建工具)作为更大解决方案构建的一部分。

我倾向于制作一个简单的批处理文件,它设置环境然后运行make。

我从构建事件中调用批处理文件(通常是在我的东西上构建后) - 通常在前面有一张 CD:

cd ..\.. && armbuild

从来没有(我记得,无论如何)控制台窗口中出现的输出有任何问题。

于 2010-07-28T09:09:51.243 回答