Aktuelle Zeit: 06.03.2021 20:11

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kurze Frage zum .so import
BeitragVerfasst: 14.02.2021 03:46 
Offline

Registriert: 04.10.2004 18:42
Wohnort: gotha
habe eben spassenshalber eine .so mit einem befehl erstellt
sie war 22kb gross

habe dann ein testprogramm was nur darin bestand
den einen befehl mit importc zu importen und ihn dann aufgerufen

die exe ist auch 23kb, dann hab ich die .so aus dem verzeichnis genommen
die exe geht immer noch

kann es sein das die .so statisch gelinkt wird?

_________________
amiga rulez...und dann noch linux oder so


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kurze Frage zum .so import
BeitragVerfasst: 14.02.2021 16:21 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo xperience2003!

Ich merke hier noch recht viel Unwissen in Bezug auf die Erstellung und Benutzung externer Libs (als shared oder static).

Zitat:
die exe ist auch 23kb, dann hab ich die .so aus dem verzeichnis genommen
die exe geht immer noch

kann es sein das die .so statisch gelinkt wird?


Wie hast du das "Shared Object" erstellt?
->Bei einem "Shared Object oder einer DLL wird diese nicht statich mit gelinkt.

Wenn du aber deine ".so" als ".o" (ohne nachfolgendes Linken zu einem ausführbaren Programms) erstellt hast kannst du diese auch statisch linken.

Die Größe einer .dll/.so liegt auch an der Größe des darin befindlichen Codes.

Wenn PureBasic aber eine gleiche .so schon im dafür vorgesehen Systemverzeichnis findet (Angaben z.B. so: -lm, -lsqlite, ..) können diese auch ohne zusätzliche Pfadangabe dynamisch verknüpft werden.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kurze Frage zum .so import
BeitragVerfasst: 14.02.2021 16:30 
Offline

Registriert: 04.10.2004 18:42
Wohnort: gotha
ok, dann wars wohl zufall

aber, gibt es einen weg das pb-compilat , wenn es noch ein .o ist
"abzufangen", bevor der linker die so draus macht
oder umgekehrt, aus der .so ein statisches .o zu machen?

---
also mein ziel ist es, mit pb eine kleine lib zu bauen
die ich dann weitergeben kann

die der anwender dann aber mit einlinken kann, ohne
das er noch die .so im verzeichniss hat, also nen stand-alone exe

_________________
amiga rulez...und dann noch linux oder so


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Kurze Frage zum .so import
BeitragVerfasst: 14.02.2021 18:51 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Ich würde dir abraten statisch zu linken.

Bei den nächsten PB-Versionen könnte es schon nicht mehr funktionieren.

So und nun der Reihe nach:

1.
Purebasic kann keine statischen .a/.lib/... erstellen.

2.
Es ist über den -c Argument beim Purebasic-Compiler möglich eine .asm -Datei zu erstellen.
Diese kann dann unter Linux mit dem fasm übersetzt werden.
Dabei entsteht auch eine .o(Object)-Datei.
Wenn man diese aber einfach statisch linken möchte hat man dieses Problem: "multiple definition" :mrgreen:

3.
Du könntest eine statische Lib in einer anderen Programmiersprache (auf dem selben System) erstellen und diese versuchen über den Import - Befehl einzubinden.

4.
Es ist besser eine Art ausführbares Programmarchiv/Installer für dein Programm zu verwenden.
Z.Bsp. könntest du ein .deb-Archiv (Unter Debian based Linux-Versions) erstellen und deine .so -Dateien sauber in ein /usr/lib -Verzeichnis installieren lassen.
(.deb - Installerdateien lassen sich unter Linux sehr schön mit diesem Tool erstellen: debreate)

5.
Vielleicht fällt jemanden noch eine bessere Lösung ein.

Anbei:
Eine weitere (mit Bedacht) abzuwegende Möglichkeit wäre: OpenSource

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye