Mein Projekt verwendet CMake zum Erstellen, verwendet jedoch die lokale macOS-Version von clang und ld, wenn auf einem Mac erstellt wird.
Nach dem Upgrade auf Xcode 11 unter macOS 10.15 Catalina kann keine Verbindung mit dem folgenden Fehler hergestellt werden : ld: cannot link directly with dylib/framework, your binary is not an allowed client of /usr/lib/libcrypto.dylib for architecture x86_64
.
Hängt dies mit der Beglaubigung der neuen App zusammen? Gibt es einen Fix, für den das Projekt nicht in Xcode enthalten sein muss (ich verwende CLion für die Entwicklung unter macOS) oder für den keine Verknüpfung meines eigenen OpenSSL-Builds erforderlich ist?
Jede Hilfe geschätzt.
Antworten:
Ich habe OpenSSL von Brew installiert und
find_package
scheint die Brew-Version zu erkennen, aber es wird versucht, das Projekt mit dem im System installierten OpenSSL zu verknüpfen, das LibreSSL ist.Ich habe versucht, das zu erzwingen
find_package
, um den genauen Pfad der Bibliothek festzulegen, aber es tut nichts:Am Ende habe ich die Abhängigkeiten manuell festgelegt, was nicht ideal ist, aber in der Zwischenzeit für die Entwicklung funktioniert.
Die Cmake-Ausgabe stellt diese Informationen bereit, wobei die OpenSSL-Bibliothek vom Brauen erkannt wird, jedoch mit der Systembibliothek verknüpft wird. Nicht sicher warum.
Ich hoffe das hilft!
quelle
Diese Seite hat mir geholfen, das OpenSSL-Problem zu lösen: https://gist.github.com/llbbl/c54f44d028d014514d5d837f64e60bac
Siehe auch diese Seite: https://forums.developer.apple.com/thread/119429
quelle
Als ich heute Morgen selbst auf dieses Problem gestoßen bin und mich umgesehen habe, bin ich auf diese Apple-Forum-Nachricht gestoßen, die darauf hinweist, dass Apple beabsichtigt, diese Arten von Bibliotheken nur intern zu verwenden. Es wird empfohlen, Bibliotheken von Drittanbietern selbst zu erstellen und in Ihre Anwendung aufzunehmen.
quelle