D R
D R

Reputation: 22500

cmake settings on snow leopard

I am trying to compile my project on Snow Leopard using the same CMakeLists.txt file that I had on Leopard, however the compilation fails with the following error message:

   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

It seems that the default behavior for cmake is to compile universal binaries on MACOSX, however Snow Leopard no longer supports universal binaries, and hence we get the above error. Is there a way to disable linking to -lcrt1.10.5.o when using cmake on a Mac to generate only Intel binaries?

Upvotes: 2

Views: 3858

Answers (2)

Mike McQuaid
Mike McQuaid

Reputation: 9814

Another temporary workaround is to pass the following to CMake:

-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32

This tells GCC to compile 32-bit binaries and doesn't require compiling ppc binaries too like the above.

Upvotes: 2

D R
D R

Reputation: 22500

It appears that this is a bug with cmake compiling x86_64 binaries despite CMAKE_OSX_ARCHITECTURES being set to i386.

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

As a temporary workaround, I am using

CMAKE_OSX_ARCHITECTURES = i386;ppc

Upvotes: 2

Related Questions