gpt4 book ai didi

c++ - 如何在 Ubuntu 中编译一个没有编译器强化的 gem?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:41:41 27 4
gpt4 key购买 nike

我正在使用 a gem不会在 Ubuntu 上编译,因为出现的是编译器强化设置。

如果我克隆 gem 的 repo 并修改 Makefile 以添加 -Wno-format-security 的 CPPFLAG,那么它编译得很好。

我的问题是,当我尝试使用 gem install ztx-0.0.1.gem 安装该 gem 时,它会尝试再次编译该 gem,但不知何故忽略了 Makefile 指定的 CPP 标志。 (我假设发生这种情况是因为我得到了与添加 -Wno-format-security 标志之前相同的错误)。

我尝试在调用 gem install... 之前导出 CPPFLAGS,但结果相同。

所以,我的问题是,我如何才能强制使用这些 CPP 标志,以便我可以编译该 gem?

最佳答案

我找到了我的问题的解决方案,尽管该解决方案并不是这个问题的直接答案。

我想禁用由 ubuntu 中的编译器强化设置引起的编译器错误。正如@Jesper 在评论中指出的那样,这可能不是一个明智的想法。

但我想知道为什么它不起作用。它在 MacOS 上编译得很好。然后我注意到大部分错误都在一个名为 tx_swig_wrap.cxx 的文件中。

我对 swig 知之甚少,但我有点陌生,它允许从 ruby​​、python 等调用一些 c/c++ 代码。

就在那时我意识到也许那个包装文件是由 swig 生成的,我遇到的错误可能已经被更新的 swig 版本修复了。

包装文件顶部有一个注释部分,告诉您创建它的 swig 版本。它是 1.X,最新的 swig 是 v3.X。

我安装了 swig,我了解到我可以通过执行 swig -c++ -ruby tx_swig.i 重新生成包装器。

我就是这样做的,并且使用新生成的文件,gem 编译没有问题。

关于c++ - 如何在 Ubuntu 中编译一个没有编译器强化的 gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48754247/

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