2009-08-28 2 views
2

Я пытаюсь скомпилировать мой проект на Snow Leopard, используя тот же CMakeLists.txt файл, который я имел на Leopard, однако компиляция завершится неудачно со следующим сообщением об ошибке:настройки CMake на ирбиса

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?

+0

+1 для уже имеющего снежного барса – ADAM

ответ

2

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

-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 

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

2

Похоже, что это ошибка с компиляцией cakeake x86_64, несмотря на то, что CMAKE_OSX_ARCHITECTURES установлен в i386.

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

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

CMAKE_OSX_ARCHITECTURES = i386; ппц