强制使用 cmake 提供最新的 gcc
我正在将一个小型应用程序部署到需要编译的几个不同系统(mac、linux、linux64)。我想告诉 cmake 特定系统中可用的最新 gcc。例如,Mac 10.6 有 gcc 4.0 和 gcc 4.2(默认)。但有些用户还通过 MacPorts 安装了 gcc 4.4(这不是默认设置)。我希望 cmake 在这种情况下使用 gcc44。在其他linux系统中,最新的gcc是4.4或4.5,有什么更健壮的方法来实现这一点?
谢谢,
H
I am deploying a small application to several different systems (mac, linux, linux64) where it needs to be compiled. I would like to tell cmake to the latest gcc available in a particular system. For example, Mac 10.6 has gcc 4.0 and gcc 4.2 (default). But some users have also gcc 4.4 installed through MacPorts (it is not the default). I would like cmake to use gcc44 in this case. In other linux systems, the latest gcc is 4.4 or 4.5 What is the more robust way to achieve this?
Thanks,
H
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
CMake 在检测到要使用的 C 和 C++ 编译器后,会使用环境变量
CC
和CXX
。例如,如果这些变量指向 clang,则默认情况下它将使用 clang:您可以将它们定义为指向首选编译器的系统范围环境变量,也可以编写一个小型 shell 包装脚本来测试多个编译器的可用性并相应地设置变量在调用 cmake 之前。
CMake honors the environment variables
CC
andCXX
upon detecting the C and C++ compiler to use. E.g., if those variables point to clang, it will use clang by default:You could either define these as system wide environment variables pointing to the preferred compilers or write a small shell wrapper script which tests the availability of several compilers and sets the variables accordingly before invoking cmake.
我必须将其添加到我的 CMakeLists.txt 才能正常工作:
I had to add this to my CMakeLists.txt for it to work:
另一个技巧是确保使用您想要的 GCC,即在 CMake 之前执行类似的操作:
导出 PATH=/path/to/my/gcc:$PATH
Another trick is to do make sure the GCC you want is used is to do something like this before CMake:
export PATH=/path/to/my/gcc:$PATH