Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Compile LINUX , cannot open shlwapi.dll (https://www.delphipraxis.net/204124-compile-linux-cannot-open-shlwapi-dll.html)

bernhard_LA 19. Mai 2020 00:02

AW: Compile LINUX , cannot open shlwapi.dll
 
Liste der Anhänge anzeigen (Anzahl: 1)
mit procmon konnte ich einen ersten Fehler tatsächlich finden, Active X stand in einer unit.....; Diese unit ist nun entfernt, nur leider immer noch der selbe Fehler ,
vermutlich aus einer weiteren unit.

Delphi-Quellcode:
[DCC Error] E2597 C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot open shlwapi.dll: No such file or directory
Nur hilft mit procmon aktuell nicht weiter, hier der aktuelle dump, die letzten Zeilen bis zum Abbruch :-(

hoika 19. Mai 2020 05:40

AW: Compile LINUX , cannot open shlwapi.dll
 
Hallo,
such mal per Grep nach SH*, z.B. SHDeleteKey in deinem Code.

Hier
https://docs.microsoft.com/en-us/win...2/api/shlwapi/
ist eine Auflistung aller Funktionen.

PS:
Hattest du denn mal ein neues, leeres Projekt getestet?

bernhard_LA 19. Mai 2020 10:48

AW: Compile LINUX , cannot open shlwapi.dll
 
jede Einbindung von Windows units in diesem Stil, speziell ShlObj, unterbunden
via grep shlobj überprüft

Delphi-Quellcode:
 
  {$IFDEF LINUX}
   Myunit_TRegistry
  {$ENDIF}
  {$IFDEF MSWINDOWS}
  Registry,
  Windows,
  ShlObj;
  {$endif}
ich kann eine ganz Reihe von anderen Anwendungen weiterhin auch für LINUX deloyen ....

hoika 19. Mai 2020 11:59

AW: Compile LINUX , cannot open shlwapi.dll
 
Hallo,
und die shlwapi selber mal per grep gesucht, das ist ja auch eine normale Delphi-Unit?

Vielleicht lungert ja auch nur eine alte DCU bei dir rum?

Assarbad 19. Mai 2020 22:02

AW: Compile LINUX , cannot open shlwapi.dll
 
Jetzt verrate doch mal was da sonst noch so in C:\Program Files (x86)\Embarcadero\Studio\20.0\bin rumlungert? Wie ich vorher schon getippt hab, könnte es sich um die Binutils handeln und dann könnte man da mit der Bash for Git rangehen so ala:
Code:
find -type f -name '*.o'|while read fname; do objdump -t "$fname"|tee "${fname##*/}.objdump.txt"|grep -i shlwapi; done
Beschreibung: Finde alle Dateien (-type f) mit einem Namen (-name) der auf '*.o' (vielleicht bei euch *.obj?) paßt und pipe die Ausgabe in eine while-Schleife (while; do ...; done). Lies jede Zeile in die Variable fname (read fname) und führe aus objdump (aus Binutils) und sage diesem alle Symbole auszugeben (-t) die in der Datei "$fname" gefunden werden. Pipe diese Ausgabe in eine Datei die auf dem ursprünglichen Namen basiert (abgeschnittener Pfad) und hänge .objdump.txt dran (die Dateien landen im aktuellen Verzeichnis!). Durchsuche wiederum diese Ausgabe ohne Beachtung von Groß- und Kleinschreibung (-i) mithilfe von grep nach shlwapi ...

Ich habe deutlich mehr Zeit damit verbracht diese Beschreibung einzutippen als den Befehl.

Statt am Ende nach shlwapi zu suchen kann man auch Path und SH suchen ... vielleicht dann lieber mit "grep -Pi" und in Form von '\WPath\w+' bzw. '\WSH\w+' ...

Die ganze Übung kann doch nicht so schwierig sein, solange der Compiler vor dem Linken Objektdateien ausspuckt. Ich habe leider keine so aktuelle Delphiversion zur Verfügung um das erster Hand zu testen.

bernhard_LA 20. Mai 2020 22:03

AW: Compile LINUX , cannot open shlwapi.dll
 
Problem gelöst .... der Übeltäter // unit gefunden ..... :P

anstelle von grep die Funktion "suche in Files /directories" von Delphi verwendet, eigentlich ganz einfach :-) alles
und dabei noch 100 Referenzen in diversen Programmstellen auf die unit windows entfernt ,
mit procmon und einem Filter auf id_linux auch noch das eine / andere Problem entdeckt ...

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Seite 3 von 3     123   

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