我在 Python 中有一个需要 GTK 的扩展模块。编译 GTK 程序通常需要大量链接,因为 GTK 依赖于许多其他库(Glib、Cairo、Pango 等)。因此,通常我只是pkg-config
使用 shell 扩展(反引号)的输出进行编译,例如:
gcc -p-O2 -Wall myprogram.c -o myprogram `pkg-config --cflags gtk+-3.0` `pkg-config --cflag `pkg-config --libs gtk+-3.0`
但是由于某种原因,当我在传递给 distutils 的参数中使用 shell 扩展时module.extra_compile_args
,我收到一个错误,因为 BASH 实际上并没有扩展表达式:
module = Extension('mymodule',
sources = ['mymodule.c'])
module.extra_compile_args = ['`pkg-config --cflags gtk+-3.0`',
'`pkg-config --libs gtk+-3.0`'];
这只会导致如下错误:
gcc: error: `pkg-config --cflags gtk+-3.0`: No such file or directory
那么,有什么办法可以使这项工作?我是否需要通过获取pkg-config
Python 字符串的输出然后将其作为元素添加来手动进行 shell 扩展module.extra_compile_args
?