【问题标题】:cmake settings on snow leopard雪豹上的cmake设置
【发布时间】:2009-08-28 23:33:52
【问题描述】:

我正在尝试使用与 Leopard 相同的 CMakeLists.txt 文件在 Snow Leopard 上编译我的项目,但是编译失败并显示以下错误消息:

   Linking C executable cmTryCompileExec

  "/Applications/CMake 2.6-4.app/Contents/bin/cmake" -E cmake_link_script
  CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1

  /Developer/usr/bin/gcc -Wl,-search_paths_first -headerpad_max_install_names
  -fPIC CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.o -o cmTryCompileExec


  ld: library not found for -lcrt1.10.5.o

  collect2: ld returned 1 exit status

  make[1]: *** [cmTryCompileExec] Error 1

似乎 cmake 的默认行为是在 MACOSX 上编译通用二进制文件,但是 Snow Leopard 不再支持通用二进制文件,因此我们得到了上述错误。在 Mac 上使用 cmake 仅生成 Intel 二进制文件时,有没有办法禁用与 -lcrt1.10.5.o 的链接?

【问题讨论】:

  • +1 已经有雪豹了

标签: macos osx-snow-leopard cmake


【解决方案1】:

另一个临时解决方法是将以下内容传递给 CMake:

-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32

这告诉 GCC 编译 32 位二进制文​​件,不需要像上面那样编译 ppc 二进制文件。

【讨论】:

    【解决方案2】:

    尽管 CMAKE_OSX_ARCHITECTURES 设置为 i386,这似乎是 cmake 编译 x86_64 二进制文件的错误。

    http://public.kitware.com/Bug/view.php?id=9466

    作为临时解决方法,我正在使用

    CMAKE_OSX_ARCHITECTURES = i386;ppc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-08
      • 2012-12-10
      • 2011-03-05
      • 1970-01-01
      • 2012-01-10
      • 2012-03-14
      • 2010-11-24
      • 1970-01-01
      相关资源
      最近更新 更多