问题标签 [nmake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3997 浏览

visual-studio - nmake、visualstudio 和 .mak 文件

我得到了一个使用 MS Visual Studio .net 2003 C++ 编译器编译的 C++ 项目,以及一个用于编译它的 .mak 文件。我可以使用 nmake project.mak 从命令行构建它,但编译器抱怨找不到 afxres.h。我做了一些搜索,afxres.h 在包含文件的 Visual Studio 目录中。我应该在哪里指定 nmake 在哪里寻找这个头文件?

0 投票
2 回答
332 浏览

build-automation - nmake 有构建任务吗?

使用Ant,我可以在继续构建之前解压缩档案......这可以使用 nmake 吗?我可以调用外部应用程序吗?甚至是批处理脚本?

0 投票
3 回答
17960 浏览

c - 将 nmake makefile 转换为 Visual Studio 2005 项目

我们这里有一些用 nmake 构建的旧 C 代码。

有没有一种自动化的方式将 Makefile 拉入 Visual Studio 2005 并创建一个项目?在 MSDN 上的一些搜索表明VS6可以做到这一点,但看起来 VS7/8 放弃了该功能。

如有必要,我可以使用 project.mak 文件作为参考从头开始构建项目,但对于更复杂的项目,这可能不可行。

0 投票
2 回答
8743 浏览

png - 在 makefile 中使用带有通配符的 nmake

我正在尝试设置一个 nmake makefile 以自动将我们的 balsamiq 模型文件导出为 png 文件,但恐怕我无法确定如何制定通用规则,而无需明确列出所有文件我要出口。

此页面详细介绍了用于导出文件的命令行语法,并且此页面包含一个示例,该示例看起来包含将 .obj 文件转换为 .exe 文件的通用规则。

到目前为止,我尝试过的 makefile 如下所示:

但这不起作用。

如果我只是简单地运行 nmake(带有一些过时的 png 文件),nmake 就会这样做:

如果我要求它构建一个特定的文件,它会这样做:

那里有任何可以让我直截了当的nmake大师吗?

一个示例 makefile,它通过复制 .txt 文件来简单地制作 .dat 文件,以进行试验,如下所示:

这也无济于事,所以很明显我不明白这些通用规则是如何工作的。我是否需要在上面指定一个目标,以某种方式列出我想要的文件?

0 投票
4 回答
13195 浏览

c++ - 导出 DLL C++ 类,关于 .def 文件的问题

我想在我的项目中使用隐式链接,nmake 真的想要一个 .def 文件。问题是,这是一个类,我不知道在导出部分写什么。谁能指出我正确的方向?

错误消息如下:

NMAKE : U1073: 不知道如何制作 'DLLCLASS.def'

PS:我正在尝试使用 Windows CE Platform Builder 进行构建。

0 投票
2 回答
3596 浏览

build-automation - 如何使用 nmake 组织 C++ 项目的项目树?

组织项目文件似乎有两个主要约定,然后是许多变体。

约定一:高级类型目录、项目子目录

例如,wxWidgets项目使用这种风格:

优点:

  • 如果存在项目依赖项,则可以从单个文件进行管理
  • 平面构建文件结构

缺点:

  • 由于 test 有自己的头文件和 cpp 文件,当您为 EXE 文件而不是库生成单元测试应用程序时,它们需要包含您正在测试的应用程序中的目标文件。这需要您创建推理规则并扩展所有源文件的相对路径。
  • 在另一个解决方案中重用任何项目需要您从树结构中提取正确的文件并修改任何构建脚本

约定2:高级项目目录,类型子目录

例如,Wireshark项目使用这种风格

优点:

  • 项目本身在其文件夹中是独立的,使它们更易于移动和重用
  • 允许在构建工具中使用更短的推理规则
  • 促进分层构建脚本

缺点:

  • 如果项目之间存在依赖关系,则需要在项目目录之上额外增加一层构建脚本来管理构建顺序

我们目前在我们的项目中使用约定 1,到目前为止它运行良好。现在,我正在添加单元测试(通过 CxxTest)并促进使用nmake迁移到持续集成,约定 1 在创建正确的 nmake 文件时引起了一些严重的麻烦。

我的主要要求/目标是:

  • 减少维护整个解决方案的构建脚本的工作量。

  • 将解决方案中的项目及其构建步骤与其他项目分离。

  • 通过使用用于签出的构建脚本来促进持续集成,以发布每次提交的媒体生成(显然也利用其他工具,例如 CruiseControl)。

  • 使添加或删除其他项目或源文件对开发人员来说尽可能容易且不易出错。

所以我问:

  • 这两种方法还有其他优点和缺点吗?
  • 是否有明确的规定只支持其中一种约定?
0 投票
2 回答
2752 浏览

windows - 处理 nmake 错误级别/返回码

我有一个基于 nmake 的项目,该项目又调用 asp 编译器,这可能会引发错误,nmake 似乎可以识别:

但是,当我从批处理文件中调用 nmake 时,环境变量 %ERRORLEVEL% 仍然设置为零:

如果我控制-c nmake 任务,我最终会得到一个非零的 ERRORLEVEL(它设置为 2)所以我的假设是我能够捕获错误,但是 nmake 不会冒泡非零从它的任务中退出代码。或者,至少,我误会了它。任何帮助,将不胜感激。

0 投票
3 回答
1463 浏览

qt - 为什么库名称的名称中多了一个 0?

我有一个带有这样的项目文件的小型 Qt 项目:

当我从它编译一个库时qmake && nmake,它会生成文件

为什么将额外的 0 添加到 lib 和 dll 名称中?

生成的makefile似乎没有附加它,而是假设它,Makefile.Release它只是说:

如何防止它并根据需要命名我的库?

(请注意,手动修复 makefile.release 不是可接受的解决方案)

0 投票
2 回答
709 浏览

makefile - 所有 .cpp 文件都依赖于两个 .h 文件?

在makefile中,我有以下行:

这可确保在 dtds.h 更改时重新构建 helper.cpp。但是,如果其他两个头文件中的任何一个发生更改,我希望重建项目中的所有文件,如下所示:

显然那是行不通的,但我不知道让 nmake 做我想做的事情的正确方法。有人可以帮忙吗?我不想手动指定每个单独的文件都依赖于 h1.h 和 h2.h。

谢谢。(我正在使用 Visual Studio 2005 中包含的 nmake。)

0 投票
1 回答
449 浏览

linux - 如何在 Microsoft VC 中使用这个 makefile?

在下面的程序中,有两件事我不明白。

  1. 如何在 Microsoft VC 中使用这个 makefile?

  2. 为什么有一个'?在'='之前?

程序: