Настройки cmake на снежном барсе

Я пытаюсь скомпилировать свой проект на Snow Leopard, используя тот же файл CMakeLists.txt, что и на 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 больше не поддерживает универсальные двоичные файлы, и, следовательно, мы получаем указанную выше ошибку. Есть ли способ отключить привязку к -lcrt1.10.5.o при использовании cmake на Mac для создания только двоичных файлов Intel?


person D R    schedule 28.08.2009    source источник
comment
+1 за то, что уже есть снежный барс   -  person ADAM    schedule 29.08.2009


Ответы (2)


Другой временный обходной путь - передать CMake следующее:

-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32

Это сообщает GCC о необходимости компилировать 32-битные двоичные файлы и не требует компиляции двоичных файлов ppc, как указано выше.

person Mike McQuaid    schedule 02.09.2009

Похоже, что это ошибка cmake, компилирующая двоичные файлы x86_64, несмотря на то, что для CMAKE_OSX_ARCHITECTURES установлено значение i386.

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

В качестве временного решения я использую

CMAKE_OSX_ARCHITECTURES = i386; ppc

person D R    schedule 01.09.2009