Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Library Problem in Android-App (https://www.delphipraxis.net/181583-library-problem-android-app.html)

canoniac 27. Aug 2014 06:28

Library Problem in Android-App
 
Hi,

ich bin dabei eine Android-App zu entwickeln und möchte eine Bibliothek verwenden.
Ich kann sie allerdings nicht wie eine .dll unter Windows ins Projektverzeichnis kopieren und gut. Sondern ich bekomme immer wieder folgenden Fehler:

[DCC Fehler] E2597 C:\Users\Public\Documents\Embarcadero\Studio\14.0\ PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: error: cannot find -lnodave

Außerdem für jede Funktion der Library:

[DCC Fehler] E2597 C:\Users\Public\Documents\Embarcadero\Studio\14.0\ PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: error: cannot find -lnodave

Kann mir jemand sagen ob ich etwas falsch mache, oder ob ich an den Einstellungen etwas ändern muss?

Vielen Dank im voraus

JanniK

canoniac 27. Aug 2014 06:29

AW: Library Problem in Android-App
 
Ach ja..

Ich verwende Windows XP Home und Delphi XE6

Danke

mkinzler 27. Aug 2014 07:01

AW: Library Problem in Android-App
 
Um was für eine Bibliothek handelt es sich aout oder so?

canoniac 27. Aug 2014 07:32

AW: Library Problem in Android-App
 
Ich möchte libnodave verwenden. Die gibt es als .dll und als .so. Die .dll funktioniert als WIN32 auch ganz gut.

Union 27. Aug 2014 08:22

AW: Library Problem in Android-App
 
Hast Du ein Beispielprojekt?

mkinzler 27. Aug 2014 08:28

AW: Library Problem in Android-App
 
Eine so wird aber dynamisch geladen, wie eine Dll. Und deshalb nicht in die Exe verlinkt.

canoniac 27. Aug 2014 09:17

AW: Library Problem in Android-App
 
Heißt denn cannot find -lnodave das mit der libnodave.dll /.so etwas nicht stimmt oder das irgendwas mit nodave.pas nicht funktioniert?

canoniac 27. Aug 2014 09:27

AW: Library Problem in Android-App
 
Zitat:

Zitat von mkinzler (Beitrag 1269935)
Eine so wird aber dynamisch geladen, wie eine Dll. Und deshalb nicht in die Exe verlinkt.

und das heißt ich kann es so nicht auf einem anderen System zum laufen bringen? Tschuldige die Frage. Ich habe in diesem Bereich noch nie etwas gemacht

mkinzler 27. Aug 2014 09:31

AW: Library Problem in Android-App
 
Genauso einbinden wie eine Dll unter Windows. Funktionen als extern deklarieren.

procedure MachEtwas(...) external '<Name der so>';

Diese muss dann mit auf das Androiddevice deployed werden.

Zitat:

Heißt denn cannot find -lnodave das mit der libnodave.dll /.so etwas nicht stimmt oder das irgendwas mit nodave.pas nicht funktioniert?
Wie sieht die Pas aus?

canoniac 27. Aug 2014 09:42

AW: Library Problem in Android-App
 
Liste der Anhänge anzeigen (Anzahl: 1)
Da ist sie:

Union 27. Aug 2014 14:08

AW: Library Problem in Android-App
 
Erstmal fehlen in Deiner Datei ja die
Delphi-Quellcode:
{ifdef ANDROID}
Zweige.

Dann musst Du die Libary angeben:

Delphi-Quellcode:
{$ifdef ANDROID}
    type

       _daveOSserialType = record
            rfd : longint;
            wfd : longint;
         end;
    const LibName = '/usr/lib/libnodave.so';
{$endif}
Dann die Funktionen analog zu LINUX deklarieren:
Delphi-Quellcode:
function daveNewConnection(di:PdaveInterface; MPI:longint; rack:longint; slot:longint):
    PdaveConnection; stdcall; external LibName {$ifdef ANDROID} name 'daveNewConnection'{$ENDIF};
Schließlich musst Du die Library noch im Berietstellungsmanager eintragen, so dass die dort landet wo Libname hin zeigt. Du musst auch aufpassen, dass die .so für arm-eabi compiliert wurde (kein MIPS oder X86).

canoniac 1. Sep 2014 09:24

AW: Library Problem in Android-App
 
Danke. Die Hinweise haben mich dem ganzen ein ganzes Stück näher gebracht.
Ich habe das alles mal so umgesetzt wie beschrieben, noch funktioniert nichts bzw der Fehler ist nicht behoben.

Wie finde ich denn heraus wie das compiliert wurde?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz