2011-06-06 165 views
5

我使用GNU make来使用Microsoft Visual C++构建项目,我希望能够从任何CMD窗口运行它,而不必打开预配置其中路径(和各种其他环境变量)由批处理文件预配置。理想情况下,我想在makefile中定义相关的环境变量,所以我只需要打开一个CMD窗口并键入“make”即可。在makefile中指定路径(在Windows上为GNU make)

总的来说,这很简单,但我很困扰PATH;到目前为止,我尝试过使用标准PATH变量(如操作系统中定义的)并将路径附加到各种构建工具的每种语法都失败了。

而不是通过六个或七个不同的语法我试过了 - 其中一些给出的错误消息,其中一些没有给出错误消息,但只是没有工作 - 我会问清楚的问题:

  • 我必须在我的makefile中放置什么行,以便link.exe的路径,即“C:\ Program Files文件(x86)\ Microsoft Visual Studio 9.0 \ VC \ bin”将被添加到“make”使用的路径?

到目前为止,我已经到成功最近已经确定:

LINK = “C:\ Program Files文件(x86)的\微软的Visual Studio 9.0 \ VC \ BIN \ LINK.EXE”

...并以$(LINK)替换所有后续对“link.exe”的引用,但是这会失败,因为link.exe具有也必须位于该路径上的各种依赖关系(例如mspdb80.dll)。

回答

7

这工作:

DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE 
VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin 

export Path:=$(DevEnvDir);$(VCINSTALLDIR);$(Path) 

这是需要“出口”和之前击败了我区分大小写。

+1

在我的情况下(make.exe v.3.8.1从http://gnuwin32.sourceforge.net/packages/binutils.htm)我不得不切换到大写 - PATH,与路径它没有工作。 – 2015-11-20 10:49:40

+0

我有和@ZinovyNis一样的经历。 – drnewman 2017-07-25 22:16:04