我需要找出可用的(安装在系统)版本的GCC AC程序的执行(在运行时)内(主要和次要)。 这意味着,编程提取可用的gcc版本(一样的,如果我是在一个壳和类型的gcc --version,但在交流计划)。
该__GNUC__
和__GNUC_MINOR__
仅在编译时有用,我已经找到了gnu_get_libc_version()
从功能gnu/libc_version.h
,但它只是让我的libc版本的不同,我需要的GCC版本。 如果没有为GCC类似的东西将是巨大的...
我真的想避免调用一个shell命令来做到这一点。
调用gcc
与参数外壳命令--version
; 它是这样做的正确方法。 见popen()
来做到这一点。
或者,你可以调用与GCC编译程序,其打印的价值观__GNUC__
和__GNUC_MINOR__
。 但是,如果有问题的GCC被配置为跨compilaton这是行不通的。
替代将是搜索版本字符串的二进制和希望你正确的,该格式不会改变,该版本字符串是不够鲜明,为您与足够的信心识别它。
在1.5万个字:不。
我需要找出可用的(安装在系统)版本的GCC(主要和次要)
你打算用这些信息做什么?
你不能得到一个有意义的回答你的问题,因为
- 用户可能没有安装在任何GCC
/usr/bin
- 可能对系统上的其他地方安装5个不同的版本
- 可能有一个版本
/usr/bin
,其pretentds是gcc-XY
,但实际上是gcc-ZW
,或Clang
,或icc
等。
但是,如果你坚持要一个毫无意义的答案, popen("gcc --version")
并分析所生成的输出。