栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将g ++ 4.8链接到libstdc ++

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将g ++ 4.8链接到libstdc ++

与自己的gcc链接时,您需要添加一个额外的运行时链接程序搜索路径,

-Wl,-rpath,$(PREFIX)/lib64
以便在运行时找到与您的gcc对应的共享库。

我通常在与我调用的目录相同的目录中创建一个包装器

gcc
,而不是和调用,而在动态链接器中找不到该包装器:
g++``gcc-4.8``g++-4.8``gcc-4.8``g++-4.8

#!/bin/bashexec ${0}SUFFIX -Wl,-rpath,PREFIX/lib64 "$@"

安装时

SUFFIX
PREFIX
应将其替换为
configure

cd ${PREFIX}/bin && rm -f gcc g++ c++ gfortransed -e 's#PREFIX#${PREFIX}#g' -e 's#SUFFIX#${SUFFIX}#g' gcc-wrapper.sh > ${PREFIX}/bin/gccchmod +x ${PREFIX}/bin/gcccd ${PREFIX}/bin && ln gcc g++ && ln gcc c++ && ln gcc gfortran

gcc-wrapper.sh
是bash片段)。


上面的解决方案不适用于的某些版本,

libtool
因为它
g++ -Wl,... -v
采用链接模式,并因错误而失败。

更好的解决方案是使用specs文件。一旦构建了gcc / g ,请调用以下命令以将gcc / g

添加

-rpath
到链接器命令行中(
${PREFIX}/lib64
根据需要替换):

g++ -dumpspecs | awk '/^*link:/ { print; getline; print "-rpath=${PREFIX}/lib64", $0; next } { print }' > $(dirname $(g++ -print-libgcc-file-name))/specs


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400946.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号