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: 1643
Erhaltene Danke: 236

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: 1189
Erhaltene Danke: 100

Win7
DXE2 Prof, 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.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18726
Erhaltene Danke: 1628

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), 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