[[$(MAKE)在makefile中被评估为make而不是nmake

问题描述 投票:0回答:2

我试图按照本文中提到的步骤在我的远程桌面上安装libcurl库:How do you properly install libcurl for use in visual studio 2017?

但是当我运行此命令行nmake / f Makefile.vc mode = static时,出现此错误:make-3.80:***没有规则可以使目标为'/ NOLOGO'。停止

此错误来自Makefile.vc中的此行:

@ $(MAKE)/ NOLOGO / F MakefileBuild.vc

在仔细研究了这个问题并浏览了Visual Studio文档之后,我发现/ NOLOGO只是一个选项,但是以某种方式被视为文件(从上述错误中可以看出)。

因此,我尝试在本地计算机上遵循相同的步骤,因此能够安装libcurl库。然后,我尝试查看$(MAKE)在本地计算机和远程桌面上的计算结果,发现以下内容:

在我的本地计算机上,$ MAKE是“ C:\ ProgramFiles(x86)\ MicrosoftVisualStudio \ 2017 \ Professional \ VC \ Tools \ MSVC \ 14.16.27023 \ bin \ HostX86 \ x86 \ nmake.exe”

在我的远程桌面上,$ MAKE是make-3.80

有人可以建议这里出现什么问题吗? (在两种情况下,我都使用nmake运行相同的命令)

makefile libcurl nmake
2个回答
0
投票

根据documentation,环境变量优先于内置变量:

如果宏具有多个定义,则NMAKE使用优先级最高的定义。以下列表显示了从最高到最低的优先顺序:

  • 在命令行上定义的宏
  • 在makefile或include文件中定义的宏
  • 继承的环境变量宏
  • 在Tools.ini文件中定义的宏
  • 预定义的宏,例如CC和AS

当定义MAKE环境变量时,它将接管内置值。


0
投票

实际上,远程桌面的MAKE环境变量设置为make-3.80,这实际上是在执行make而不是nmake。删除环境变量后,我就能够成功构建库。

© www.soinside.com 2019 - 2024. All rights reserved.