Après la mise à niveau vers macOS Big Sur 11.01, j'obtiens l'erreur suivante:
clang: error: aucun fichier ou répertoire de ce type: '/usr/lib/libz.dylib' clang: error: aucun fichier ou répertoire de ce type: '/usr/lib/libiconv.dylib' La commande Ld a échoué avec un code de sortie différent de zéro
Comment reproduire: créer un nouveau projet cocos2d-x en utilisant:
Ouvrez le projet xcode généré (changez l'identifiant du bundle) et construisez
Versions:
3 Réponses :
J'ai vérifié dans le dossier /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
les fichiers libz.dylib et libiconv.dylib n'existent pas. Je pense que vous devriez utiliser les fichiers libz.tbd et libiconv.tbd
Projet / Paramètres de construction / Autres indicateurs de l'éditeur de liens
Je les ai supprimés des paramètres de construction (autres indicateurs de lien) et les ai ajoutés aux phases de construction. Cette solution manuelle fonctionne, merci pour cela. Mais comment puis-je faire cela avec cmake?
vous pouvez vous référer dans le fichier {your_project_name} /cocos2d/cmake/Modules/CocosConfigDepend. cmake
J'ai changé le fichier: 'CocosConfigDepend.cmake' dans cmake / modules / de la bibliothèque cocos2d-x v4.0.
elseif(IOS) # Locate system libraries on iOS find_library(UIKIT_LIBRARY UIKit) find_library(OPENGLES_LIBRARY OpenGLES) find_library(CORE_MOTION_LIBRARY CoreMotion) find_library(AVKIT_LIBRARY AVKit) find_library(CORE_MEDIA_LIBRARY CoreMedia) find_library(CORE_TEXT_LIBRARY CoreText) find_library(SECURITY_LIBRARY Security) find_library(CORE_GRAPHICS_LIBRARY CoreGraphics) find_library(AV_FOUNDATION_LIBRARY AVFoundation) find_library(WEBKIT_LIBRARY WebKit) find_library(ZLIB z) find_library(ICONVLIB iconv) list(APPEND PLATFORM_SPECIFIC_LIBS ${UIKIT_LIBRARY} ${OPENGLES_LIBRARY} ${CORE_MOTION_LIBRARY} ${AVKIT_LIBRARY} ${CORE_MEDIA_LIBRARY} ${CORE_TEXT_LIBRARY} ${SECURITY_LIBRARY} ${CORE_GRAPHICS_LIBRARY} ${AV_FOUNDATION_LIBRARY} ${WEBKIT_LIBRARY} ${COCOS_APPLE_LIBS} ${ZLIB} ${ICONVLIB} #"/usr/lib/libz.dylib" #"/usr/lib/libiconv.dylib" ) endif()
Ajout du ZLIB et ICONVLIB et suppression des lignes de chemin d'accès complet.
Cela ressemble plus à un hack. Nous avons besoin d'une solution appropriée à ce problème. Avez-vous essayé d'installer les bibliothèques à l'aide d'un gestionnaire de paquets comme Homebrew? Voici les liens: formulae.brew.sh/formula/libiconv et formulae.brew.sh/formula/zlib
Pour un projet existant, supprimez simplement en dessous de deux lignes de «Autre indicateur de l'éditeur de liens»
/usr/lib/libz.dylib /usr/lib/libiconv.dylib
Dans Xcode Build Phases, la section Link Binary With Libraries supprime également lib.dylib et ajoute libz.tbd et libiconv.tbd
Checkout ci-dessous l'image: