我需要在ac程序的执行中(在运行时)找出可用的(安装在系统中)GCC版本(主要和次要).意思是,以编程方式提取可用gcc的版本(就像我在shell中一样,键入gcc --version,但在ac程序中).
该__GNUC__
和__GNUC_MINOR__
仅在编译时有用,我已经找到了gnu_get_libc_version()
从功能gnu/libc_version.h
,但它只是让我的libc版本的不同,我需要的GCC版本.如果GCC有类似的东西,那就太棒了......
我真的想避免调用shell命令来执行此操作.
gcc
使用参数调用shell命令--version
; 这是正确的方法.看到popen()
这样做.
或者,你可以调用与GCC编译程序打印出值__GNUC__
和__GNUC_MINOR__
.但如果有问题的GCC配置为交叉编译,那么这将不起作用.
替代方法是在二进制文件中搜索版本字符串,并希望您获得正确的字符串,格式不会更改,并且版本字符串足够清晰,您可以充分放心地识别它.
用1.5个字:不要.
我需要找出可用的(安装在系统中)GCC版本(主要和次要)
你打算怎么处理这些信息?
你无法对你的问题得到有意义的答案,因为
/usr/bin
/usr/bin
其中pretentds是gcc-X.Y
,但实际上gcc-Z.W
,或Clang
,或icc
等.但是,如果你坚持得到一个毫无意义的答案,popen("gcc --version")
并解析结果输出.