无法运行C++;使用sublime build时的程序,在从终端运行时工作良好 我试图在Linux /ubuntu 14.04 上运行C++程序

无法运行C++;使用sublime build时的程序,在从终端运行时工作良好 我试图在Linux /ubuntu 14.04 上运行C++程序,c++,linux,ubuntu,sublimetext2,sfml,C++,Linux,Ubuntu,Sublimetext2,Sfml,我使用的是SFML库,如果SFML安装在非标准路径中(实际上是这样),则建议在运行之前包括这一行: $export LD\u LIBRARY\u PATH=/lib 我可以使用以下输入从终端运行程序: $export LD\u LIBRARY\u PATH=/home/dan/SFML-2.3.1/lib&./YorickTheSavant 但是,当尝试用文件启动Sublime Text 2中的程序时,出现以下错误: [Errno 2] No such file or directory [c

我使用的是SFML库,如果SFML安装在非标准路径中(实际上是这样),则建议在运行之前包括这一行:

$export LD\u LIBRARY\u PATH=/lib

我可以使用以下输入从终端运行程序:

$export LD\u LIBRARY\u PATH=/home/dan/SFML-2.3.1/lib&./YorickTheSavant

但是,当尝试用文件启动Sublime Text 2中的程序时,出现以下错误:

[Errno 2] No such file or directory
[cmd:  [u'export', u'LD_LIBRARY_PATH=/home/dan/SFML-2.3.1/lib', u'&&', u'./YorickTheSavant']]
[dir:  /home/dan/yorickthesavant]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/dan/.rvm/bin]
[Finished]
以下是我的sublime构建文件供参考:

{
"cmd": ["g++", "-m32", "-c", "-std=c++11",

"src/buff.cpp",
"src/card.cpp",
"src/clickableObject.cpp",
"src/creature.cpp",
"src/dataHandler.cpp",
"src/dungeonRun.cpp",
"src/enemy.cpp",
"src/gameQueue.cpp",
"src/gameSystem.cpp",
"src/graphics.cpp",
"src/hoverText.cpp",
"src/infoText.cpp",
"src/main.cpp",
"src/player.cpp",
"src/queueBlock.cpp",
"src/queueEffect.cpp",
"src/roundedCornerRect.cpp",
"src/save.cpp",
"src/ttText.cpp",

"-I", "include"],

"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "/home/dan/yorickthesavant/",
"selector": "source.c, source.c++",

"variants":
[
    {
        "name": "Link",

        "cmd": ["g++", "-m32",

        "buff.o",
        "card.o",
        "clickableObject.o",
        "creature.o",
        "dataHandler.o",
        "dungeonRun.o",
        "enemy.o",
        "gameQueue.o",
        "gameSystem.o",
        "graphics.o",
        "hoverText.o",
        "infoText.o",
        "main.o",
        "player.o",
        "queueBlock.o",
        "queueEffect.o",
        "roundedCornerRect.o",
        "save.o",
        "ttText.o",

        "-o", "YorickTheSavant",
        "-L", "/home/dan/SFML-2.3.1/lib",
        "-lsfml-graphics",
        "-lsfml-window",
        "-lsfml-system"]
    },
    {
        "name": "Run",
        "cmd": ["export", "LD_LIBRARY_PATH=/home/dan/SFML-2.3.1/lib", "&&", "./YorickTheSavant"]
    }
]
}

“Run”变量就是我正在使用的变量。当游戏在终端外启动时,如何使这一行自动包含在升华文本2中?

输入
cmd
键。升华构建文件指定要运行的程序。 第一个值应该是程序,其余的是参数, 因此,当它找不到名为
export
的程序时,它会失败,因为它是一个内置的shell

要在shell中运行整个命令(就像手动执行命令一样),可以在
run
变量中指定
“shell”:true
(或者使用而不是
cmd
):

这应该比直接调用
/bin/sh-c
更好,而且我认为您不再需要将cmd数组中的条目压缩为单个字符串

或者,在运行可执行文件之前,您也可以尝试使用
env
键(也可以找到)指定
LD\u LIBRARY\u PATH
环境变量:

{
    "name": "Run",
    "cmd": ["./YorickTheSavant"],
    "env" : { "LD_LIBRARY_PATH" : "/home/dan/SFML-2.3.1/lib" }
}

cmd
输入.sublime生成文件指定要运行的程序。 第一个值应该是程序,其余的是参数, 因此,当它找不到名为
export
的程序时,它会失败,因为它是一个内置的shell

要在shell中运行整个命令(就像手动执行命令一样),可以在
run
变量中指定
“shell”:true
(或者使用而不是
cmd
):

这应该比直接调用
/bin/sh-c
更好,而且我认为您不再需要将cmd数组中的条目压缩为单个字符串

或者,在运行可执行文件之前,您也可以尝试使用
env
键(也可以找到)指定
LD\u LIBRARY\u PATH
环境变量:

{
    "name": "Run",
    "cmd": ["./YorickTheSavant"],
    "env" : { "LD_LIBRARY_PATH" : "/home/dan/SFML-2.3.1/lib" }
}

我猜导出不是一个可执行文件,而是一个shell内置文件。因此,您需要执行类似于
“cmd:[“/bin/sh”,“export”,“stuff”,“&&”,“YorickTheSavant”]
maybe@melak47我尝试将我的sublime构建文件中的这一行更改为:
“cmd”:[“/bin/sh”,“export”,“LD_LIBRARY\u PATH=/home/dan/SFML-2.3.1/lib”,“&&”,“YorickTheSavant”]
但是现在我得到了以下错误:
/bin/sh:0:无法打开导出[在0.0s内完成,退出代码为127]
哦,sh需要一些参数,您可能需要将整个命令括在引号中执行:
“cmd”:[“/bin/sh”,“-c”,“'export-LD\u-LIBRARY\u-PATH=/home/dan/SFML-2.3.1/lib&./YorickTheSavant']
最后运行程序:
“cmd”:[“/bin/sh”、“-c”、“导出LD_库路径=/home/dan/SFML-2.3.1/lib&./YorickTheSavant”]
谢谢!也许@melak47可以创建一个可以接受的官方答案,这样这个问题就可以标记为已解决。我猜
export
不是一个可执行文件,而是一个shell内置文件。因此,您需要执行类似于
“cmd:[“/bin/sh”,“export”,“stuff”,“&&”,“YorickTheSavant”]
maybe@melak47我尝试将我的sublime构建文件中的这一行更改为:
“cmd”:[“/bin/sh”,“export”,“LD_LIBRARY\u PATH=/home/dan/SFML-2.3.1/lib”,“&&”,“YorickTheSavant”]
但是现在我得到了以下错误:
/bin/sh:0:无法打开导出[在0.0s内完成,退出代码为127]
哦,sh需要一些参数,您可能需要将整个命令括在引号中执行:
“cmd”:[“/bin/sh”,“-c”,“'export-LD\u-LIBRARY\u-PATH=/home/dan/SFML-2.3.1/lib&./YorickTheSavant']
最后运行程序:
“cmd”:[“/bin/sh”、“-c”、“导出LD_库路径=/home/dan/SFML-2.3.1/lib&./YorickTheSavant”]
谢谢!也许@melak47可以创建一个可以接受的官方答案,所以这个问题可以标记为已解决。