使用自定义 gcc 位置构建包
Posted
技术标签:
【中文标题】使用自定义 gcc 位置构建包【英文标题】:Build package with custom gcc location 【发布时间】: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 调用 thatg++
吗?
使用 shell 我只能获得自定义 gcc 位置
我的意思是你是否可以在 makefile 之外运行 g++
而不会出现问题。
我想我应该是,实际上所有的东西都在远程机器上运行。
我不确定,但您可能需要将libmpc.so.3
的位置添加到LD_LIBRARY_PATH
环境变量中。
【参考方案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)
【讨论】:
以上是关于使用自定义 gcc 位置构建包的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Qt Creator 中启用自定义 gcc 参数? [复制]