【发布时间】:2015-12-01 05:04:18
【问题描述】:
我正在尝试在 Sublime Text 3 中编译一个 C 程序,然后在 OS X Yosemite 上的终端(通过 Sublime Text 打开)中运行它。我的构建系统是:
{
"cmd": ["gcc", "${file}", "-o", "${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c",
"variants":
[
{
"name": "Run",
"cmd": ["bash", "-c", "gcc '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
}
]
}
当我构建时,例如,test.c,它编译得很好。当我运行程序时,我得到这个:bash: line 1: 916 Segmentation fault: 11。我确定这是因为我的程序需要传递给它的参数。
所以我有两个问题:
如何更改构建系统,以便在运行它时打开终端并在其中运行?
如何在程序运行之前将参数传递给程序?例如,在 Linux 上,我会输入
./test hello 20932aa,它会运行良好。如何在 Sublime Text 3 (OS X Yosemite) 上实现同样的效果。
【问题讨论】:
-
OS X 也有终端。如果你愿意,你可以使用它。
-
是的,我知道,但我希望 Sublime Text 在构建代码时打开它。这是我必须做的额外步骤。
-
我不知道您是否可以在每次运行中传递不同的参数,但在与上述相同的构建文件中,您可以在最后一行(最后一个 cmd ) 你可以写: "cmd": ["bash", "-c", "gcc '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name } 你好 20932aa'"].
-
@JordyBaylac 最后说没有目录被命名为
test hello 20932aa。
标签: c macos gcc build sublimetext3