我有一个 C# 项目,它使用绑定(bind)来使用一些 C++ 代码。 C++ 代码由多个使用 makefile 编译的 DLL 组成。目前我正在尝试使用调用 nmake 的预构建事件来运行 makefile。但是,要让它找到 nmake,我需要在其中添加一行,如下所示:
"$(DevEnvDir)..\..\VC\vcvarsall.bat"
此外,即使存在该行,nmake 也不会在输出窗口中产生任何输出。它也不会抛出任何错误。我尝试将输出重定向到一个文件,但它什么也没写。我已经在普通 shell 中重现了预构建事件中的所有步骤,并且工作正常。我想我一定是遗漏了什么。为什么 Visual Studio 不为我的预构建事件提供 Visual Studio shell?有没有更好的方法来运行这个 makefile?如果没有,有没有人知道为什么 nmake 没有产生任何输出?
编辑:噢! nmake 没有运行,因为我忘记在行的开头添加“调用”,即:
call "$(DevEnvDir)..\..\VC\vcvarsall.bat"
最佳答案
我经常构建非 VS 项目(有时使用 nmake,有时使用其他构建工具)作为大型解决方案构建的一部分。
我倾向于制作一个简单的批处理文件,它会设置环境然后运行 make。
我从构建事件中调用批处理文件(通常是在我的东西上构建后)——通常前面有一张 CD:
cd ..\.. && armbuild
从来没有(无论如何我记得)控制台窗口中出现的输出有任何问题。
关于c# - 有没有更好的方法从 c# 项目运行 c++ 生成文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3351132/