voglio includere libgpgerror e Libgcrypt nel mio swift-progetto e creato le seguenti: module.modulemapsXcode "ld: libreria non trovato [...] per l'architettura 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 *
}
ho anche aggiunto il "Swift Compiler - Percorso di ricerca/Importa Paths": /Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/**
sia di progetto e di destinazione. I moduli sono stati trovati, i percorsi sono corretti.
Tuttavia se voglio compilare il progetto ottengo il seguente errore:
ld: library not found for -l'/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/libgpgerror-1.21.dylib' for architecture x86_64
Ma se faccio
file /Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/libgpgerror-1.21.dylib
ottengo l'uscita
/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/libgpgerror-1.21.dylib: Mach-O 64-bit dynamically linked shared library x86_64
così sembra la libreria è nella posizione corretta e ha anche l'architettura corretta.
Modifica
ho trovato una soluzione: ho rimosso il link-direttiva dalle modulemaps e collegato le librerie manualmente; questo sembra funzionare. Ma perché?
module libgpgerror {
header "/Volumes/Xcode/Programme/Swifts/KCAnon/KCAnon_Client/Libs/libgpgerror/gpg-error.h"
export *
}
Stai utilizzando Swift Package Manager? Come sei riuscito a collegare le librerie manualmente? –
Sono riuscito a farlo compilare specificando esplicitamente il percorso di dylib nel comando di costruzione rapida. 'swift build -Xlinker -L/usr/local/lib/-Xcc -I/usr/local/include /' –
Se non si aggiunge la direttiva link, è possibile specificare il flag '-luv' e generare un xcodeproj che avrà i set di flag necessari: 'swift build -Xlinker -L/usr/local/lib/-Xcc -I/usr/local/include/-Xlinker -luv --generate-xcodeproj' –