无法使用Sublime Text 2构建Allegro程序

时间:2012-11-03 18:48:08

标签: c++ sublimetext2 allegro5

尝试使用Sublime Text 2和SublimeClang编译并运行一个简单的Allegro程序。如果我在命令行上运行g++ '/path/to/project/main.cpp' -o '/path/to/project/main' -I/usr/include/allegro5 -L/usr/lib -lallegro,它编译得很好。

C ++的内容.sublime-build

{
    "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",

    "variants":
    [
        {
            "name": "Run",
            "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' $(pkg-config --libs allegro-5.0)"]
        }
    ]
}

运行失败,Sublime Console的输出为:

Running bash -c g++ '/path/to/project/main.cpp' -o '/path/to/project/main' && '/path/to/project/main' -I/usr/include/allegro5 -L/usr/lib -lallegro

似乎Sublime正在添加&& '/path/to/project/main',即使构建设置没有指定这样做。什么导致Sublime添加此&& '/path/to/project/main'?我该如何删除它?

从更大的角度来看 - 这意味着即使没有使用库,Allegro也会在所有C ++项目中链接。有没有办法在我的系统上全局添加Allegro标志?对不起,通常不是C ++ dev。

1 个答案:

答案 0 :(得分:0)

我解决了自己的问题。我使用反引号而不是$()符号:

"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' `pkg-config --libs allegro-5.0` && ./${file_base_name}"]

注意我还添加了&& ./${file_base_name} - 它也运行程序。