【问题标题】:mkmf generates a strange Makefilemkmf 生成一个奇怪的 Makefile
【发布时间】:2014-06-19 17:15:56
【问题描述】:

当我使用原生 C 绑定构建 gem 时,我收到以下警告:

ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'

我在生成的 Makefile 中发现了以下几行:

CFLAGS   = $(CCDLFLAGS) -O3 -I/Users/travis/.sm/pkg/active/include -fPIC -mmacosx-version-min=10.6 -pipe -std=c99 -Wall -ggdb -O2 $(ARCH_FLAG)
..
ldflags  = -L. -L/Users/travis/.sm/pkg/active/lib -fPIC -Bstatic -fstack-protector -lpthread

我的系统用户名不是travis,我也没有在extconf.rb中指定。

也发现了这个问题:https://github.com/flori/json/issues/207

【问题讨论】:

  • 除了这张票似乎表明某个 makefile 中的“已知”错误之外,这里是否还有其他问题?
  • @EtanReisner 问题是确定 mkmf 为何会这样并修复此行为。票证没有指出问题的根源,因为我没有在那里使用 json。
  • 'env' 在你运行 mkmf 的 shell 中说什么?
  • env | grep travis - 没有

标签: ruby makefile travis-ci mkmf


【解决方案1】:

/Users/travis 实际上来自 rvm 安装的预编译 ruby​​,截至 2.1.0 左右。如果您在 .rvm/rubies/ 或您的 ruby​​ 安装目录中查找该字符串,您会在那里找到它。我相信这个警告是无害的。

如果事实证明它不是无害的,或者您只是想摆脱它,那么在本地构建 ruby​​ 而不是使用预编译的二进制文件应该可以为您修复它。

【讨论】:

  • 在 osx 上它不是良性的。 Rails 安装失败
  • 我也在 OSX 上。您确定这是原因,并且没有其他错误吗?
  • 我在本地库编译过程中遇到错误,抱怨 /Users/travis 库路径。我重新安装了命令行工具并更新和升级了 brew。接下来我得到一个关于 libgmp 的错误。所以我用 brew 重新安装了它,问题就消失了。 @nilbus
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 2018-12-19
  • 2012-01-03
  • 1970-01-01
  • 2021-06-24
  • 2014-12-01
相关资源
最近更新 更多