Autor Beitrag
canoniac
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 20.08.14 08:56 
Hallo zusammen,

ich versuche für eine Projektarbeit von einem Android-Tablet / Smartphone auf eine S7 SPS zuzugreifen. Dazu habe ich die Bibliothek libnodave gefunden und mir stellen sich einige Fragen.

- Hat das schon jemand versucht?

- Kann ich die bereitgestellten Komponenten einfach so in einer mobilenFireMonkey Anwendung verwenden?

Vielen Dank schonmal im Voraus!

Jannik
canoniac Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 20.08.14 13:54 
ausblenden Delphi-Quelltext
1:
2:
uses
  SysUtils, Classes, NoDave, SyncObjs, FMX.Controls, {$IFDEF FPC} LCLIntf, LResources {$ELSE} WINDOWS {$ENDIF};


Ich kann das Projekt unter WIN32 compilieren, allerdings tritt beim transferieren auf Android tritt ein Fehler auf.
uses WINDOWS
funktioniert unter Android nicht.

Hat jemand eine Idee wie das zu lösen ist?
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Mi 20.08.14 14:15 
Hallo,

nimm doch USES windows raus und klapper dann die Compilermeldungen ab, um die Abhängigkeiten von der unit windows zu finden und passend zu ersetzen.

Gruß Horst
canoniac Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 21.08.14 15:06 
Erstmal danke für die Antwort. Ich dachte ich hätte das Problem umgangen indem ich einfach die NoDaveComponent.pas nicht mehr verwende und stattdessen nur NoDave.pas und libnodave.dll. Das funktioniert auch als WIN32 ganz wunderbar, nur beim compilieren unter Android bekomme ich diesen Fehler:

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

C:\Users\Public\Documents\Embarcadero\Studio\14.0\PlatformSDKs\android-ndk-r10\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: C:\Users\Jannik\Documents\Embarcadero\Studio\Projekte\Verbindung\Android\Debug\nodave.o: in function Nodave::openSocket(int, char16_t*):nodave(.text._ZN6Nodave10openSocketEiPDs+0x4): error: undefined reference to 'openSocket'

selbige Meldung gibt es für jede andere Funktion der libnodave.

Was genau verursacht diesen Fehler und wie löse ich ihn?

Vielen Dank
Jannik
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1321
Erhaltene Danke: 117

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Sa 23.08.14 00:06 
Alles was eine Dll, also eine Windows spezifische Library, verwendet kann natürlich unter anderen Betriebssystemen nicht verwendet werden. Bzw. Aufrufe, wie der der da angemeckert wird, müssen ersetzt werden durch entsprechende für das Zielsystem gültige.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 23.08.14 06:29 
Es existiert dort ein IFDEF LINUX. Mit etwas Glück kannst du einfach LINUX als Direktive in den Projektoptionen anlegen um es zum Laufen zu bringen. Denn prinzipiell funktioniert die Bibliothek ja unter Android, es fehlt nur der Pascal Wrapper speziell für Android.
canoniac Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 25.08.14 12:27 
Es scheint ja ein Linkerfehler zu sein mit dem Zusatz cannot find -lnodave.

Wo müsste die libnodave.so denn hineinkopiert werden?
Chemiker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 194
Erhaltene Danke: 14

XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
BeitragVerfasst: Mi 03.09.14 20:14 
Hallo,

vielleicht die Frage im SPS-Forum mal stellen früher war der Entwickler von libnodave dort unterwegs, vielleicht kann er Dir weiterhelfen. www.sps-forum.de/sea...php?searchid=3615354

Bis bald Chemiker