【问题标题】:Build package with custom gcc location使用自定义 gcc 位置构建包
【发布时间】:2018-04-28 15:42:47
【问题描述】:

我试图通过 Makefile 用 gcc4.9 构建 c++ 包。 默认情况下,系统始终使用系统编译器 (/usr/bin/g++),即 gcc4.5。要使用 4.9,我已将其添加为我的包的依赖项。

要使用 GCC 的自定义位置,我在 Makefile 中设置了以下命令

override CXX := $(shell  {some path})/gcc-rhel5/bin/g++
override CC := $(shell  {some-path})/gcc-rhel5/bin/g++

在使用上述 g++ 路径构建此包后,但我遇到了异常。

/cc1plus:加载共享库时出错:libmpc.so.3:无法打开共享对象文件:没有这样的文件或目录

我该如何解决这个问题。

【问题讨论】:

  • 你能从 shell 调用 that g++ 吗?
  • 使用 shell 我只能获得自定义 gcc 位置
  • 我的意思是你是否可以在 makefile 之外运行 g++ 而不会出现问题。
  • 我想我应该是,实际上所有的东西都在远程机器上运行。
  • 我不确定,但您可能需要将libmpc.so.3 的位置添加到LD_LIBRARY_PATH 环境变量中。

标签: c++ gcc makefile


【解决方案1】:

假设您拥有完整的构建工具以及自定义版本的 gcc。只需像这样执行您的 make 命令。 请务必删除您添加到 makefile 中的行。您不应该对编译器路径进行硬编码。

$ cd yourproject/
$ PATH={some path}/gcc-rhel5/bin LD_LIBRARY_PATH={some path}/gcc-rhel5/lib make

注意:您需要完整的编译工具和编译器来执行此操作,还需要与您的自定义 gcc 版本相对应的共享库。即你不能只复制bin文件,你应该有一个像这样的目录结构......

-gcc-rhel5/
--bin/
---gcc
---g++
---make
---ld
--lib/
---libmpc.so.3
---libc.so.6
--(some other files)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2020-02-25
    相关资源
    最近更新 更多