什么是" sdl-config"在编译sdl c程序时是什么意思?

时间:2015-12-19 17:18:09

标签: c++ c gcc compilation sdl

在许多教程中,我看到sdl-config编译了一个sdl c程序。在c ++示例中,我也看到了。 以下是here的示例。

g++ sdlExample.cpp `sdl-config --cflags --libs` -o sdlExample

sdl-config --cflags --libs是什么意思?为什么内部重音?

2 个答案:

答案 0 :(得分:2)

在执行命令的shell中,反向引号意味着命令替换。因此,基本上,反向引号内的任何内容都作为命令执行,并且其输出被替换。

示例:

echo Today is `date`

首先执行date命令,并替换它的输出。

echo Today is Sat Dec 19 14:32:13 EST 2015

然后执行以生成:

Today is Sat Dec 19 14:32:13 EST 2015

所以,在你的命令中,

g++ sdlExample.cpp `sdl-config --cflags --libs` -o sdlExample

shell将首先执行,

sdl-config --cflags --libs

并替换其输出,

g++ sdlExample.cpp <output of the above command> -o sdlExample

然后最终执行生成的命令行。

要查看命令替换后实际执行的内容,只需在前面添加echo

echo g++ sdlExample.cpp `sdl-config --cflags --libs` -o sdlExample

这将显示生成的命令行。

请注意,命令替换还有一种替代语法,当您有复杂的嵌套替换时,这种语法是首选。

echo g++ sdlExample.cpp $(sdl-config --cflags --libs) -o sdlExample

这是一种非常标准的技术,可以为库/框架生成适当的命令行选项,其中选项取决于安装等。在这种情况下,sdl-config命令会生成必要的编译器选项({{1} } {和cflags)用于libs包。您可以通过直接在命令行上执行它来试验它可以做的其他事情。

sdl

sdl-config man page

答案 1 :(得分:1)

它只输出适当的标志传递给编译器,类似于pkg-config对其.pc文件的作用(位于/ usr / lib / pkgconfig中)。