web-dev-qa-db-fra.com

Erreur lors de la compilation d'une bibliothèque statique à l'aide de Swift "caractère d'option inconnu` X 'dans: -Xlinker "

Voir cette erreur lors de l'ajout d'un fichier Swift pour la compilation dans une bibliothèque statique. À l'aide de XCode 6.0 (6A215l)

Erreur complète de libtool: Libtool DerivedData/SwiftTest/Build/Products/Debug-iphonesimulator/libstatic.a normal i386 cd /Users/al/dev/ios/SwiftTest2 export IPHONEOS_DEPLOYMENT_TARGET=8.0 export PATH="/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode6-Beta.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static -Arch_only i386 -syslibroot /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk -L/Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Products/Debug-iphonesimulator -filelist /Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Intermediates/SwiftTest.build/Debug-iphonesimulator/static.build/Objects-normal/i386/static.LinkFileList -ObjC -L/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphonesimulator -Xlinker -rpath -Xlinker /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphonesimulator -Xlinker -force_load -Xlinker /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a -Xlinker -sectalign -Xlinker __Swift -Xlinker __ast -Xlinker 4 -Xlinker -sectcreate -Xlinker __Swift -Xlinker __ast -Xlinker /Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Intermediates/SwiftTest.build/Debug-iphonesimulator/static.build/Objects-normal/i386/static.swiftmodule -o /Users/al/dev/ios/SwiftTest2/DerivedData/SwiftTest/Build/Products/Debug-iphonesimulator/libstatic.a

J'ai créé un exemple de projet ici, l'erreur se produit dans un projet complètement nouveau: https://github.com/amleszk/SwiftTest/tree/cd94ca21d817fed336b1a3bfc774a13608e0d1ca

Pour reproduire l'extraction du projet et générer la cible SwiftTest, qui dépend de la bibliothèque statique. Toute aide appréciée

31
amleszk

pdate: Il semble que la version officielle de Xcode 6 ait toujours le même problème.

À partir des notes de version de xcode 6 beta 2:

Il n'est pas possible de créer des bibliothèques statiques contenant du code Swift dans cette version

28
femot

J'ai trouvé la solution. C'est du crochet, mais ça marche. Vous devez le faire en tant que root.

  1. Accédez au répertoire par défaut de la chaîne d'outils

    cd $(xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/bin

  2. Renommez libtool actuel en old_libtool

    mv libtool old_libtool

  3. Créer un nouvel libtool

    touch libtool && chmod +x libtool

  4. Insérer le script actuel comme contenu du nouveau libtool

    #!/usr/bin/python
    import os
    import subprocess
    import sys
    args=[]
    for arg in sys.argv[1:]:
        if arg != '-Xlinker' and arg != '-add_ast_path' and not arg.endswith('swiftmodule'):
            args.append(arg)
    args.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), 'old_libtool'))
    subprocess.check_call(args)
    
  5. Compiler.

0
knowwis