I libgpgerror und libgcrypt in meinem swift-Projekt aufnehmen möchten, und erstellt die folgenden module.modulemaps:Xcode "ld: Bibliothek nicht gefunden [...] für Architektur x86_64"
libgpgerror:
libgcrypt:
module libgcrypt {
header "/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgcrypt/gcrypt.h"
link "'/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgcrypt/libgcrypt-1.6.5.dylib'"
export *
}
ich habe auch den "Swift Compiler - Suchpfad/Import Pfade": /Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/**
sowohl Projekt und Ziel. Die Module sind gefunden, die Pfade sind korrekt.
Allerdings, wenn ich das Projekt, das ich die folgenden Fehler kompilieren will erhalten:
ld: library not found for -l'/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/libgpgerror-1.21.dylib' for architecture x86_64
Aber wenn ich
file /Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/libgpgerror-1.21.dylib
bekomme ich die Ausgabe
/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/libgpgerror-1.21.dylib: Mach-O 64-bit dynamically linked shared library x86_64
es scheint so Die Bibliothek ist am richtigen Ort und hat auch die richtige Architektur.
bearbeiten
fand ich eine Abhilfe: Ich habe den Link-Richtlinie von den modulemaps entfernt und die Bibliotheken manuell verbunden sind; das scheint zu funktionieren. Aber warum?
module libgpgerror {
header "/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/gpg-error.h"
export *
}
Verwenden Sie den Swift Package Manager? Wie konnten Sie die Bibliotheken manuell verknüpfen? –
Ich konnte es erstellen, indem ich explizit den Dylib-Pfad im Befehl swift Build eingab. 'swift build -Xlinker -L/usr/local/lib/-Xcc -I/usr/local/include /' –
Wenn Sie die Link-Anweisung nicht hinzufügen, können Sie das '-luv'-Flag angeben und ein xcodeproj generieren Die folgenden Flags müssen gesetzt sein: 'swift build -Xlinker -L/usr/local/lib/-Xcc -I/usr/local/include/-Xlinker -luv --generate-xcodeproj ' –