Einzelnen Beitrag anzeigen

tdeck

Registriert seit: 26. Jun 2006
Ort: Obertshausen
67 Beiträge
 
Delphi 11 Alexandria
 
#1

Problem mit Compiler-Direktiven für ausgeklammerte libusb.pas

  Alt 6. Okt 2022, 21:35
Hallo Leute,

ich glaube ich stehe gerade auf dem Schlauch. Ich entwickle im Moment eine APP für Windows und Android, die bei beiden Geräten die USB-Schnittstelle nutzt. Unter Windows und unter Android habe ich bereits meine USB-Funktionen am laufen. Jetzt bringe ich gerade die beiden verschiedenen Treiber zusammen in den Code und möchte über die Compiler-Direktiven "{$ifdef MSWINDOWS}" / "{$endif MSWINDOWS}" und "{$ifdef ANDROID}" / "{$endif ANDROID}" den entsprechenden USB-Treiber nutzen.

Bei Fastreport nutze ich diese Funktion schon seit einiger Zeit ohne Probleme.
Ich nutze den USB-Treiber 'libusb0.dll", die Funktionen und die DLL-Aufrufe habe ich in der libusb.pas Unit.

In meiner Main-Unit habe ich die 'uses' so angepasst:
Code:
  {$ifdef MSWINDOWS} // Nur bei Windows
  ,FMX.frxClass
  ,FMX.Ani
  ,libusb   // erzeugt beim übersetzen unter Android trotzdem einen Fehler
  {$endif MSWINDOWS}
  ;
Wenn ich jetzt das Zielsystem Android auswähle, sollte doch die "libusb.pas" eigentlich ignoriert werden, aber scheinbar nicht.
Ich erhalte einen Fehler:
Code:
[DCC Fehler] E2597 C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidNDK-21-22.0.44500.8973\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: error: cannot find -lusb0
[DCC Fataler Fehler] F2588 Linker-Fehlercode: 1 ($00000001)
Diesen erhalte ich auch, wenn ich in den "uses" die "libusb" entferne, erst wenn ich die libusb.pas aus dem Projekt entferne ist diese Meldung ebenfalls weg. Also schließt der Compiler für Android trotz Compiler-Direktive diese Datei mit ein.

Kann man das irgendwie verhindern?

Gruß
Thorsten
Thorsten
  Mit Zitat antworten Zitat