在Linux / Unix shell中有一种语法可以执行命令,在这个命令中是先执行的其他命令,然后替换为这样的命令:
gcc main.c `pkg-config --cflags --libs gtk+-3.0`
这里首先执行pkg-.....
然后用其输出替换,然后执行整个命令
Windows PowerShell中是否有一些类似的功能(如果可能的话,我也会使用cmd)
我所知道的是,在PowerShell中你可以这样写:
gcc main.c (pkg-config --cflags --libs gtk+-3.0)
但问题是,辅助命令的输出像一个连续的字符串一样传递,所以像这样" -mms-bitfields ....."并且gcc不会将其识别为单独的命令。
答案 0 :(得分:3)
您可以使用-split operator:
gcc main.c ((pkg-config --cflags --libs gtk+-3.0) -split " ")
或者可能
gcc main.c ((pkg-config --cflags --libs gtk+-3.0) -split " +")
以避免在输出中的参数之间存在多个空格的情况下使用空参数(尽管我不认为pkg-config
会这样做)。
-split运算符完全按照它在锡上所说的那样:它在给定模式出现时分割它给出的内容。也就是说,
PS C:\> "foo bar baz" -split " "
foo
bar
baz