2009-08-28 12 views
2

Je suis en train de compiler mon projet sur Snow Leopard en utilisant le même fichier CMakeLists.txt que j'avais sur Leopard, mais la compilation échoue avec le message d'erreur suivant:paramètres cmake sur la neige léopard

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 

Il semble que le comportement par défaut pour cmake est de compiler des binaires universels sur MACOSX, cependant Snow Leopard ne supporte plus les binaires universels, et donc nous obtenons l'erreur ci-dessus. Y at-il un moyen de désactiver la liaison à -lcrt1.10.5.o lorsque vous utilisez cmake sur un Mac pour générer uniquement des binaires Intel?

+0

+1 pour avoir déjà un léopard des neiges – ADAM

Répondre

2

Une autre solution temporaire est de passer ce qui suit à CMake:

-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 

Cela dit GCC pour compiler des binaires 32 bits et ne nécessite pas de compiler des binaires ppc trop comme ci-dessus.

2

Il semble qu'il s'agisse d'un bogue avec les binaires x86_64 compilant cmake malgré la définition de CMAKE_OSX_ARCHITECTURES sur i386.

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

En tant que solution temporaire, j'utilise

CMAKE_OSX_ARCHITECTURES = i386, ppc

Questions connexes