Greifen Sie auf die .A-Datei der statischen Bibliothek in der .Net MAUI-Klassenbibliothek zu und erstellen Sie. Nach dem
Posted: 21 Dec 2024, 14:49
Wie verknüpfe ich eine statische Bibliothek mit der .Net MAUI-Klassenbibliothek und wie verwende ich diese DLL in einem Beispielprojekt?
Lib-File\CSharpLib.dll
AddByCase API ist in der .a-Datei vorhanden, die ich mit nm -C file überprüft habe.a
Gibt es ein Verknüpfungsproblem? Klassenbibliotheksprojekt?
Ich habe versucht, so zu verlinken
Versuchen Sie 1:
Static
True
Versuchen Sie 2:
Im Hauptprojekt verwende ich die DLL, die aus einer Klassenbibliothek wie dieser stammt
Lib-File\CSharpLib.dll
- Erstellen einer .NetMaui-Klassenbibliothek. Dabei füge ich eine statische Dateibibliothek hinzu, die aus C++ erstellt wurde.
Beispiel:
AddByCase - Wrapper.cs-Klasse in der Klassenbibliothek erstellt und auf diese APIs zugegriffen
Beispiel:
const string DllName = "__Internal";
[DllImport(DllName, EntryPoint = "AddByCase", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)] //Entry Point name has to be same name as in .a File
internal static extern long AddByCase(int SequenceNumber, double Quantity, StringBuilder ItemUPC, StringBuilder CaseUPC, double Price, int Pack, int InnerPack, StringBuilder ErrorMessage); - Verknüpfen der .a-Datei im Klassenbibliotheksprojekt mit dem folgenden
Pfad:
Platforms\\iOS\\Lib\\. // This is the path where i have .a file inside the project
Der folgende Code befindet sich in .CSProj
Static
True - Projekt erstellen und DLL erfolgreich erstellen. Während ich diese DLL-Datei im Hauptprojekt verwende, erhalte ich so viele Fehler wie die folgenden. Was fehlt?
like/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/ targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: clang++ mit Code 1 beendet: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: Undefiniert Symbole für Architektur x86_64: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: " _Abort“, referenziert von: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: " _AddByCase“, referenziert von: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
- Visual Studio-Code: Version: 1.96.2
- MacOS: 14.7.1
- XCode: 16.2
- DotNet-SDK: 8.0. 404
Lib-File\CSharpLib.dll
AddByCase API ist in der .a-Datei vorhanden, die ich mit nm -C file überprüft habe.a
Gibt es ein Verknüpfungsproblem? Klassenbibliotheksprojekt?
Ich habe versucht, so zu verlinken
Versuchen Sie 1:
Static
True
Versuchen Sie 2:
Im Hauptprojekt verwende ich die DLL, die aus einer Klassenbibliothek wie dieser stammt
Lib-File\CSharpLib.dll