Невозможно собрать программу Allegro с Sublime Text 2

Попытка скомпилировать и запустить простую программу Allegro, используя Sublime Text 2 и SublimeClang. Если я бегу 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.

0

Решение

Я решил свою проблему. Я использовал кавычки вместо $() обозначения:

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

Обратите внимание, я также добавил && ./${file_base_name} — который запускает программу тоже.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]