12

我正在尝试通过make在顶级目录中简单执行来构建我的项目。但是,当我这样做时,我收到以下错误:

[Errno 2] No such file or directory
[cmd:  [u'make']]
[dir:  /Users/jonathanong/Workspace/template]
[path: /usr/local/bin]
[Finished]

这是在将构建配置设置为Make.

我正在使用 Sublime Text 2.0.1、OS X 10.8.2。我的 Makefile 包括执行全局安装的node.js二进制文件。我需要做什么?

4

2 回答 2

15

这是因为make不在您的 PATH 中。如果您可以在终端中构建,请使用which make找出路径make,然后将其添加到构建路径中。您可以编辑makefile 构建系统以添加您的路径。

您的新 makefile 规则应如下所示:

{
   "cmd": ["make"],
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${project_path:${folder:${file_path}}}",
   "selector": "source.makefile",
   "path": "/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin",
   "variants":
    [
      {
        "name": "Clean",
        "cmd": ["make", "clean"]
      },
      {
        "name": "Test",
        "cmd": ["make", "test"]
      }
    ]
}

这基本上是默认make目标,但我添加到 PATH 和(当然)一个测试目标。您可能必须扩展 PATH 以查找 gcc、ifort 或您用于编译的任何内容。 用于:分隔 Linux 和 Mac 以及;Windows 上的目录。您还可以更改其他环境变量,我必须设置 DYLD_LIBRARY_PATH 和 CPATH 以便我的库和包含目录可用。

它应该保存为 Make (OSX).sublime-build 在您的 Sublime 首选项的用户目录中。(OSX) 将确保此文件仅在 Mac 上使用,因此当您将首选项复制到非 Mac 计算机时,您不会弄乱路径。

于 2012-12-11T20:08:28.960 回答
1

一个更可取的解决方案是 IMO 调整插件中的 PATH,因此您只需为所有构建系统和所有调用外部命令的插件设置一次。

你可以做

import os
os.environ['PATH'] += os.pathsep + '/my/extra/path'

真实世界的示例位于https://github.com/schlamar/ST3User/blob/master/preferences.py

于 2013-05-06T14:11:49.200 回答