【问题标题】:Building libconfig 64bit on Mac OS X在 Mac OS X 上构建 libconfig 64 位
【发布时间】:2013-04-07 09:49:43
【问题描述】:

我想在我的 Mac OS X (v10.8.3) 上构建和安装 libconfig 为 64 位。 我可以在终端内使用哪些命令? 如果我只使用./configuresudo make install,库将安装为 32 位。

否则...如何在安装过程后从系统中正确删除库(库位于/usr/local/ 路径中)?

亲切的问候,维。

【问题讨论】:

  • 你可以在项目目录中做一个make uninstall。我在 32 位版本中遇到了同样的问题。这似乎(乍一看和googleing)与uname -p的输出有关,即i386。不要问我为什么,遗憾的是我不知道。

标签: c macos compilation 64-bit libconfig


【解决方案1】:

您可能需要在配置命令行上传递CFLAGS='-arch x86_64' 才能正确设置架构:

./configure CFLAGS='-arch x86_64'

更新:

添加CFLAGS 不会改变configure 检测系统的方式,它只会改变传递给gcc 的内容。但它将构建为 64 位可执行文件:

$ file lib/.libs/libconfig.*.dylib
lib/.libs/libconfig.9.dylib: Mach-O 64-bit dynamically linked shared library x86_64

如果你真的希望configure 输出正确,那么你需要传入一个--build 参数:

$ ./configure --build=x86_64-apple-darwin10.8.0
checking build system type... x86_64-apple-darwin10.8.0
checking host system type... x86_64-apple-darwin10.8.0
checking target system type... x86_64-apple-darwin10.8.0
...

生成的库也是 64 位的:

$ file lib/.libs/libconfig.*.dylib
lib/.libs/libconfig.9.dylib: Mach-O 64-bit dynamically linked shared library x86_64

诚然,在这里使用--build 选项是更好的选择。然而,由于 Mac OS X 上的 gcc 可以构建“胖”二进制文件,它有点模糊了您正在构建的机器的界限,因为它可以为 i386 和 x86_64 构建。

【讨论】:

  • 不幸的是,这并没有帮助,因为将拱标志传递给 C 或 CXX 不会影响对 configure 调用的检测。配置吐出:checking build system type... i386-apple-darwin12.4.0 checking host system type... i386-apple-darwin12.4.0 checking target system type... i386-apple-darwin12.4.0
  • @MarioMueller 更改 CFLAGS 不会更改 configure 识别系统的方式。如果您希望 configure 的检测正确,我用更多信息和另一种方式更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2010-12-04
  • 2012-12-17
  • 2010-11-21
  • 2012-03-18
  • 2014-08-19
  • 1970-01-01
相关资源
最近更新 更多