AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Android Linker Problem

Ein Thema von TurboMagic · begonnen am 12. Feb 2024 · letzter Beitrag vom 13. Feb 2024
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#1

Android Linker Problem

  Alt 12. Feb 2024, 15:53
Hallo,

gegeben sei Delphi 12.0 Patch 1 oder 11.3, reagiert beides komisch.
Gegeben sei ein Android Projekt, bestehend aus einer in Delphi geschriebenen .SO
(Shared Object, das Android äquivalent zur Windows DLL) und der Versuch das in einer
Delphi Android App statisch einzubinden (um etwas zu testen).

Im Hauptformular der App welche die SO benutzen soll steht sowas hier zum Import:

Delphi-Quellcode:
{$IFDEF WIN32}
function DoAdd(a, b: Integer): Integer; cdecl; external 'SO_Test.dll';
{$ELSE}
function DoAdd(a, b: Integer): Integer; cdecl; external 'libSO_Test.so';
{$ENDIF}
In dem Ordner, in dem der Android 32 Compiler die Ausgabe ablegt gibt es auch eine
libSO_Test.so, die ist im Deployment Manager auch entsprechend eingebunden und das Ganze
hatte vor Weihnachten auch schon mal funktioniert.

Nur jetzt endet der Versuch das mit F9 auszuführen immer in dieser Fehlermeldung:
[DCC Fehler] E2597 C:\Users\Public\Documents\Embarcadero\Studio\23.0\ CatalogRepository\AndroidNDK\android-ndk-r21\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\aarch64-linux-android\bin\ld.exe: cannot find -lSO_Test

Ich verstehe aber nicht warum der Linker nach SO_Test und nicht libSO_Test schaut.
Aber selbst wenn ich die libSO_Test.so in SO_Test.so umbenenne gibt's eine entsprechende
Fehlermeldung. Ändere ich den Import so: ... external 'liblibSO_Test.so';
würde scheinbar nach einer libSO_Test.so geschaut aber es klappt trotzdem nicht:
..ld.exe: cannot find -llibSO_Test

Hat jemand eine Idee worn das liegen könnte?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#2

AW: Android Linker Problem

  Alt 13. Feb 2024, 09:22
Kann es was mit 32/64-Bit zu tun haben?
Auch unter Windows kann man die DLL's nicht so einfach mixen, unter Android wahrscheinlich auch nicht.
Habe ich nie getestet, aber ich gehe davon aus dass die .so zur jeweiligen Bittigkeit passen muss.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#3

AW: Android Linker Problem

  Alt 13. Feb 2024, 09:47
Ja, .SO's kann man auch nicht so einfach mixen.
Aber eigentlich liegt diese als 64 und 32 bit Variante vor und sollte auch im Deployment Manager
so eingetragen sein. Ich werde das aber nochmal prüfen.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#4

AW: Android Linker Problem

  Alt 13. Feb 2024, 12:36
Hallo,

mir ist eben was dazu klar geworden:
Als statischer Import funktioniert es nicht.
Als dynamischer mittels LoadLibrary und GetProcAddress aber schon.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz