AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Compile LINUX , cannot open shlwapi.dll
Thema durchsuchen
Ansicht
Themen-Optionen

Compile LINUX , cannot open shlwapi.dll

Ein Thema von bernhard_LA · begonnen am 26. Apr 2020 · letzter Beitrag vom 20. Mai 2020
Antwort Antwort
Seite 1 von 2  1 2      
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.153 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 28. Apr 2020, 11:45
welche windows unit könnte ich in meinen source code eingebunden haben damit die shlwapi.dll beim compilieren aufgerufen wird ?
ich konnte ja schon mal für LINUX und Windows kompilieren .....
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 28. Apr 2020, 11:49
Hallo,
siehe mein Post (#3).
Wir kennen deinen Quellcode nicht.

Klappt denn ein komplett leeres Programm?
Heiko

Geändert von hoika (28. Apr 2020 um 11:53 Uhr)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.153 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 28. Apr 2020, 12:23
@hoika

< 1 Mio Zeilen code
~ 1000 units die sich x mal untereinander einbinden .............



wenn ich wüsste was die dll macht könnte ich den Suchraum einschränken ....
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.598 Beiträge
 
Delphi 7 Professional
 
#4

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 28. Apr 2020, 12:43
Bei Google suchenshlwapi

https://docs.microsoft.com/en-us/win...2/api/shlwapi/

https://www.geoffchappell.com/studie.../api/index.htm

Grob: Kappselt gaaaaanz vieeeeel von der Windows-Api.

Dürfte für Linux absolut uninteressant sein. Da müssen dann die entsprechenden "Linux-Gegenstücke" genutzt werden.

Mal nur 'ne Vermutung:

Irgendwo fehlt ein Kompilerschalter, der für die Unterscheidung zwischen Windows und Linux zuständig ist.

EmbeddedWB nutzt die Dll z. B., ebenso die JCL.

Achso: Es gibt auch 'ne Unit shlwapi (Zumindest in den Quellen zu https://www.delphipraxis.net/203147-...er-delphi.html).

Ist die irgendwo unter Deinen 1000?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#5

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 28. Apr 2020, 13:03
Sicher dass ihr an der richtigen Stelle sucht?
Beim Kompilieren werden die eingebundenen .DLL (Windows) bzw. .SO (Linux) niemals geladen, also ist es "erstmal" egal falls im Quellcode irgendwo eine Referenz darauf stünde, weil z.B. ein IFDEF fehlt.

Die Fehlermeldung in #1 sieht eher so aus, als wenn sie aus der ld-linux.exe kommt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.598 Beiträge
 
Delphi 7 Professional
 
#6

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 28. Apr 2020, 13:37
Sicher dass ihr an der richtigen Stelle sucht?
Nö.
Beim Kompilieren werden die eingebundenen .DLL (Windows) bzw. .SO (Linux) niemals geladen, also ist es "erstmal" egal falls im Quellcode irgendwo eine Referenz darauf stünde, weil z.B. ein IFDEF fehlt.
Prinzipiell erstmal richtig.
Zitat:
Die Fehlermeldung in #1 sieht eher so aus, als wenn sie aus der ld-linux.exe kommt.
Dagegen spricht aber die Fehlernummer: E2597
Meine Interpretation des Fehler geht dahin, dass der Linker meint, er müsse die DLL beim Linken mit einbinden (z. B. als Resource oder was auch immer), auch wenn das eigentlich vollständiger Humbug sein dürfte.

Was passiert denn, wenn ein neues Projekt für Linux kompiliert werden soll. Tritt der Fehler dann auch auf?
Müsste ja eigentlich, wenn die ld-linux.exe die DLL für sich selbst, also die eigene Funktionalität, benötigt. (Achso: Muss ja nicht unbedingt sein, dass die DLL grundsätzlich geladen werden muss, sondern nur, wenn 'ne Routine aus ihr benötigt wird. Von daher ist so ein Test auch nicht zwingend verlässlich.)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 28. Apr 2020, 14:01
Hallo,
und noch mal ...
Klappt denn ein komplett leeres (VCL-) Programm?

< 1 Mio.
puh, dann geht das ja
> 1 Mio. wäre in der Tat zu aufwendig
Heiko
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.153 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 14. Mai 2020, 10:00
@

was müsste ich machen wenn
Zitat:
"Fehlermeldung in #1 sieht eher so aus, als wenn sie aus der ld-linux.exe kommt."
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 14. Mai 2020, 16:11
@hoika

< 1 Mio Zeilen code
~ 1000 units die sich x mal untereinander einbinden .............



wenn ich wüsste was die dll macht könnte ich den Suchraum einschränken ....
Also, als erstes könnte man ein Tool wie ack oder ripgrep einsetzen, oder sogar kommerzielle Werkzeuge wie meinen persönlichen Favoriten PowerGREP (übrigens in Delphi geschrieben!). Letzteres läuft perfekt unter Wine und ist daher bei mir auch auf Linux Werkzeug der Wahl im Klickibuntiland (GUI).

Ach ja (Einfügung): ripgrep läßt sich im Handumdrehen auf dem eigenen Rechner bauen, sofern man sich mit rustup die entsprechende Umgebung installiert (ist lokal im eigenen Profil) und das dann mit cargo baut.

Und wenn sich Delphianer zusammentun, könnte es demnächst sogar Unterstützung in SourceTrail für Delphi geben.

Sicher dass ihr an der richtigen Stelle sucht?
Beim Kompilieren werden die eingebundenen .DLL (Windows) bzw. .SO (Linux) niemals geladen, also ist es "erstmal" egal falls im Quellcode irgendwo eine Referenz darauf stünde, weil z.B. ein IFDEF fehlt.

Die Fehlermeldung in #1 sieht eher so aus, als wenn sie aus der ld-linux.exe kommt.
Tsk tsk tsk ... beim Kompilieren vielleicht nicht. Aber beim Linken brauchste mit dem Linker aus den Binutils auch auf Windows die DLL (bzw. auf Linux die .so). Wie das in der Welt von Delphi umgesetzt ist, oder ob man sich bei bestehenden Projekten bedient hat (Binutils?), weiß ich nicht. Geladen im Sinne von Codeausführung stimmt auch auf Linux; das passiert also nicht. Aber während sich auf Windows Import-Libs eingebürgert haben, in denen bereits die Stubs für den Linker vorliegen, ist es auf Linux Usus, daß der Linker sich diese Informationen direkt aus der .so zusammensammelt. Und ja, dazu wird die .so geladen (wobei der Begriff ja mehrdeutig ist, und ich nicht weiß welche Bedeutung hier von dir gemeint war).

Soweit ich mich entsinne, brachte auch Delphi Werkzeuge mit um den Inhalt (Symbole) von Objektdateien anzuschauen. Man könnte also quasi auch "ganz simpel" mit einem Tool dieser Art die Symbole in eine Textdatei ausgeben lassen und danach mit simpler Textsuche den Verweis auf die shlwapi aufspüren. Ich habe sehr gute Erfahrungen mit Bash for Git, weil dort die Basiswerkzeuge aus den coreutils von GNU beiliegen (also GNU find, grep, awk ...). Damit läßt sich wunderbar bspw. ein Verzeichnis nach Objektdateien durchsuchen und der Dateiname weiterverwursten.

Da der Linker laut Namensgebung vielleicht sogar der von Binutils ist (ld-linux.exe --version), würde ich mal gucken ob nicht vielleicht ein passendes objdump beiliegt. Und falls nicht, könnte man mal auf's Gratewohl per objdump/nm (usw.) auf einem Linux versuchen ob das Format bekannt ist. Da für Linux gebaut wird, gehe ich mal davon aus, daß ein Linux vorhanden ist.

Letztens habe ich noch andernorts einen Rüffel bekommen (Zitat 2), warum ich mich quasi nicht einfach auf eine Entwicklungsumgebung konzentriere, jetzt sehe ich wieder, daß auch Vielseitigkeit seine Vorteile hat
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (14. Mai 2020 um 16:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#10

AW: Compile LINUX , cannot open shlwapi.dll

  Alt 14. Mai 2020, 19:37
Am sinnvollsten wäre doch erst einmal wie ich in der ersten Antwort geschrieben hatte festzustellen wo eigentlich das Problem liegt. Sprich einfach mal die 5 Minuten zu investieren und mit dem Process Monitor zu schauen was mit der Datei eigentlich passiert. Vielleicht wird die ja schlicht wirklich nicht gefunden, weil der Systempfad kaputt ist oder ähnliches...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:22 Uhr.
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