gpt4 book ai didi

gcc - 通过 makefile 传递 gcc 标志

转载 作者:行者123 更新时间:2023-12-02 09:50:01 25 4
gpt4 key购买 nike

我正在尝试使用 llvm 构建通行证我已经完成了 llvm 及其相关组件的构建。但是,当我按照所有步骤构建通行证(包括 makefile )后运行 make 时, ,我得到以下内容

relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

在尝试通过谷歌搜索错误消息来找到修复程序后,我发现这并不是 llvm 特有的。一些解决方案建议我在运行配置时应该使用“--enable-shared”,但这对我的情况没有帮助。现在我想使用 fPIC 重新构建 llvm,如错误所示。但是我该如何使用 makefile 来做到这一点呢?

最佳答案

看起来您可以通过设置 shell 变量来添加 -fPIC(对于与位置无关的代码,您想要的共享库可以在任何地址加载):

export CFLAGS="$CFLAGS -fPIC"
export CXXFLAGS="$CXXFLAGS -fPIC"

查看Makefile.rules ,这些将被拾取并使用。看起来很奇怪,它一开始就不存在。

编辑:

实际上,在 makefile 中阅读更多内容,我发现了此链接到 LLVM Makefile Guide 。在 Makefile.rules 中,在 Makefile 中设置 SHARED_LIBRARY=1 或 LOADABLE_MODULE=1(这意味着 SHARED_LIBRARY)会将 -fPIC 放入编译器标志中。

关于gcc - 通过 makefile 传递 gcc 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1250608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com