在 cmake 中检查 gcc 次要版本
是否可以在cmake中检查GCC的次版本号?
我想做这样的事情:
If (GCC_MAJOR >= 4 && GCC_MINOR >= 3)
Is it possible to check the minor version number of GCC in cmake?
I want to do something like this:
If (GCC_MAJOR >= 4 && GCC_MINOR >= 3)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 onqtam 提到的
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.2)
。这个过时的答案是从 2.6 CMake 时代回来的。您可以运行gcc -dumpversion
并解析输出。这是一种方法:对于 gcc 版本 4.3.1,这会打印“4”和“3”。不过,您可以使用 CMake 的版本检查语法来让生活变得更轻松,并跳过正则表达式的内容:
Use
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.2)
as mentioned by onqtam. This obsolete answer was back from the 2.6 CMake days.You could rungcc -dumpversion
and parse the output. Here is one way to do that:That would print "4" and "3" for gcc version 4.3.1. However you can use CMake's version checking syntax to make life a bit easier and skip the regex stuff:
结合其他2个答案,可以检查具体的gcc版本如下:
Combining the 2 other answers, you can check the specific gcc version as follows:
从 CMake 2.8.10 开始,就有了 CMAKE_C_COMPILER_VERSION 和 CMAKE_CXX_COMPILER_VERSION 变量正是用于此目的,因此您可以执行以下操作:
Since CMake 2.8.10 there are the
CMAKE_C_COMPILER_VERSION
andCMAKE_CXX_COMPILER_VERSION
variables exactly for this purpose so you can do this:但是,有一个参数
-dumpfullversion
提供完整版本字符串。应该得到你想要的。 gcc 7 中的向后兼容性仍然被破坏。
However, there is an argument,
-dumpfullversion
that provides the full version string.should get what you want. Still backward compatibility is broken in gcc 7.