2

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 へのリンクを無効にする方法はありますか?

4

2 に答える 2

2

もう1つの一時的な回避策は、CMakeに以下を渡すことです。

-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32

これにより、GCCは32ビットバイナリをコンパイルするようになり、上記のようにppcバイナリをコンパイルする必要もありません。

于 2009-09-02T09:16:01.800 に答える
2

これは、CMAKE_OSX_ARCHITECTURES が i386 に設定されているにもかかわらず、x86_64 バイナリをコンパイルする cmake のバグのようです。

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

一時的な回避策として、私は使用しています

CMAKE_OSX_ARCHITECTURES = i386;ppc

于 2009-09-01T17:32:13.677 に答える