使用 SCons 更改 Linux 中的默认 C 编译器

发布于 2024-09-04 00:36:31 字数 1025 浏览 6 评论 0原文

在我的 Linux 平台上,我有多个版本的 gcc

usr/bin 下我有:

  • gcc34
  • gcc44
  • gcc

以下是一些输出:

$ gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)

$ gcc44 --version
gcc44 (GCC) 4.4.0 20090514 (Red Hat 4.4.0-6)

我需要使用 4.4 版本gcc 但默认值似乎是 4.1。

我有一种方法可以替换 /usr/bin/gcc 并使 gcc44 成为默认编译器不使用符号链接到 /usr/bin/gcc44 ?

我无法使用符号链接的原因是我的代码必须使用 mock 在 RPM 包中发布。 mock 从头开始​​创建一个最小的 Linux 安装,并在编译我的代码之前安装指定的依赖项。我无法自定义这个“最小安装”。

理想情况下,完美的解决方案是安装一个官方 RPM 软件包,将 gcc 替换为 gcc44 作为默认编译器。有这样的包吗?这可能/好吗?

其他信息

我必须使用 SConsmake 替代方案)和 它不允许我指定用于 gcc 的二进制文件。

我还将接受任何告诉我如何在我的 SConstruct 文件中指定 gcc 二进制文件的答案。

On my Linux platform, I have several versions of gcc.

Under usr/bin I have:

  • gcc34
  • gcc44
  • gcc

Here are some outputs:

$ gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)

$ gcc44 --version
gcc44 (GCC) 4.4.0 20090514 (Red Hat 4.4.0-6)

I need to use the 4.4 version of gcc however the default seems to the 4.1 one.

I there a way to replace /usr/bin/gcc and make gcc44 the default compiler not using a symlink to /usr/bin/gcc44 ?

The reason why I can't use a symlink is because my code will have to be shipped in a RPM package using mock. mock creates a minimal linux installation from scratch and just install the specified dependencies before compiling my code in it. I cannot customize this "minimal installation".

Ideally, the perfect solution would be to install an official RPM package that replaces gcc with gcc44 as the default compiler. Is there such a package ? Is this even possible/good ?

Additional information

I have to use SCons (a make alternative) and it doesn't let me specify the binary to use for gcc.

I will also accept any answer that will tell me how to specify the gcc binary in my SConstruct file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只想待在家 2024-09-11 00:36:31
  1. 一种方法是从源代码编译并安装 gcc

  2. 请参阅http://old.nabble.com/Choosing-compiler-td4675207。 html

由此:

env = Environment()
env.Replace(CC = "my_cc_compiler")

或者,根据 这个问题,

env['CC'] = 'gcc44'
  1. One way is to compile and install gcc from source.

  2. See http://old.nabble.com/Choosing-compiler-td4675207.html

From that:

env = Environment()
env.Replace(CC = "my_cc_compiler")

Or, as per the answer to this question,

env['CC'] = 'gcc44'
风月客 2024-09-11 00:36:31

这已经是很久以前的事了,但我只是想添加我找到的解决方案,它不需要更改 SConscript 文件。它对我很有用,因为我需要在 centos 5 下构建 v8,所以可能对其他人也有用。

CC=gcc44 CXX=g++44 scons

就是这样!

This is a long way in the past now, but I just thought I'd add the solution I found, which doesn't require changing the SConscript file. It was useful for me as I need to build v8 under centos 5, so possibly it may be useful for someone else too.

CC=gcc44 CXX=g++44 scons

That's it!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文