【发布时间】:2012-03-29 21:26:47
【问题描述】:
以前曾针对 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 编译器感兴趣
【问题讨论】:
-
我认为上面的输出来自 v4.3.3,而 v3.3.5 的输出将具有相同的格式。所以你想知道如何获取“4.3.3”或“3.5.5”,然后使用
ifeq技术,对吗? -
没错。我试过使用 ` | grep ntox86` 以减少列表,但这不起作用。