尝试使用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 的内容。 {
"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)"]
}
]
}
运行失败,崇高控制台的输出为:
{
"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)"]
}
]
}
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'
。是什么导致崇高添加此&& '/path/to/project/main'
?我该如何删除它?
在更大的情况下 - 这意味着即使不使用库,也将在所有C 项目中链接Allegro。有没有办法在我的系统上在全球添加Allegro旗帜?对不起,通常不是C 开发。
我解决了自己的问题。我使用了backticks,而不是 $()
符号:
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' `pkg-config --libs allegro-5.0` && ./${file_base_name}"]
注意我还添加了&& ./${file_base_name}
-也运行程序。