之前已经向 gcc 提出了类似的问题。 但是, qcc 略有不同(请参阅下面的版本输出)。
qcc -V
cc: targets available in /opt/qnx641/host/linux/x86/etc/qcc:
4.3.3,gcc_ntoarmle_cpp
4.3.3,gcc_ntoshle_acpp
4.3.3,gcc_ntox86_cpp
4.3.3,gcc_ntoppcbe
4.3.3,gcc_ntomipsbe_cpp
4.3.3,gcc_ntoshle_cpp
4.3.3,gcc_ntoarmle_gpp
4.3.3,gcc_ntoshle_ecpp-ne
4.3.3,gcc_ntoshle_cpp-ne
4.3.3,gcc_ntomipsbe_gpp
4.3.3,gcc_ntomipsle_ecpp
4.3.3,gcc_ntox86 (default)
4.3.3,gcc_ntoppcbe_cpp-ne
4.3.3,gcc_ntox86_ecpp-ne
4.3.3,gcc_ntoshle_acpp-ne
4.3.3,gcc_ntoppcbespe_acpp
4.3.3,gcc_ntoppcbe_ecpp-ne
4.3.3,gcc_ntomipsle
4.3.3,gcc_ntoppcbe_ecpp
4.3.3,gcc_ntoarmle_ecpp
4.3.3,gcc_ntox86_gpp
4.3.3,gcc_ntoshle_gpp
4.3.3,gcc_ntoshle
4.3.3,gcc_ntomipsbe_ecpp-ne
4.3.3,gcc_ntomipsbe_acpp-ne
4.3.3,gcc_ntoarmle
4.3.3,gcc_ntomipsbe_acpp
4.3.3,gcc_ntomipsle_cpp-ne
4.3.3,gcc_ntoppcbespe_cpp
4.3.3,gcc_ntoppcbespe_ecpp-ne
4.3.3,gcc_ntox86_acpp-ne
4.3.3,gcc_ntox86_acpp
4.3.3,gcc_ntomipsle_acpp
4.3.3,gcc_ntomipsle_acpp-ne
4.3.3,gcc_ntoarmle_cpp-ne
4.3.3,gcc_ntomipsbe_cpp-ne
4.3.3,gcc_ntomipsle_ecpp-ne
4.3.3,gcc_ntoppcbespe_ecpp
4.3.3,gcc_ntoppcbespe_cpp-ne
4.3.3,gcc_ntox86_ecpp
4.3.3,gcc_ntoshle_ecpp
4.3.3,gcc_ntoppcbespe_acpp-ne
4.3.3,gcc_ntoppcbe_gpp
4.3.3,gcc_ntoppcbe_acpp-ne
4.3.3,gcc_ntoppcbespe_gpp
4.3.3,gcc_ntoppcbe_cpp
4.3.3,gcc_ntomipsbe_ecpp
4.3.3,gcc_ntoppcbe_acpp
4.3.3,gcc_ntoarmle_acpp-ne
4.3.3,gcc_ntox86_cpp-ne
4.3.3,gcc_ntomipsbe
4.3.3,gcc_ntomipsle_cpp
4.3.3,gcc_ntoarmle_acpp
4.3.3,gcc_ntomipsle_gpp
4.3.3,gcc_ntoarmle_ecpp-ne
4.3.3,gcc_ntoppcbespe
我需要制作一个通用的makefile来区分两个不同的编译器:上面的编译器和版本3.3.5。
我知道如何使用gcc(如下所示:Checking the gcc version in a Makefile?)。但是,我似乎无法弄清楚如何使用它来创建ifeq
或ifdef
,它将与我从qcc获得的输出一起使用。
有什么想法吗?
修改 只对ntox86 / ntox86_cpp编译器感兴趣
答案 0 :(得分:2)
尝试
qcc -V | sed -n '/,/{s/,.*//;p;q}'
修改:
多么奇怪。这需要几次迭代。你能尝试这两个实验吗?
sed --version
和
qcc -V | sed -n