Viele Compiler, aber kein Linker?

Post Reply
Message
Author
User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

Viele Compiler, aber kein Linker?

#1 Post by RSH »

Hallo,

inzwischen habe ich mir xxx_devx.sfs, kernel_xxx.sfs, Lazarus und Free Pascal heruntergeladen und angesehen. Einzig: ein Linker fehlt. Oder bin ich blind?

Hat jemand eine Idee, wie ich an einen Linker für genannte Entwicklungssystem gelange?

RSH

User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#2 Post by rhadon »

So wie ich das verstehe (von Lazarus und Pascal habe ich gar keine Ahnung, von C usw. das meiste vergessen) heisst der Linker ld, bzw. ist ein symb. Link zu ld.bfd in devx.sfs/usr/bin.

HTH
Rolf
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

Re: Viele Compiler, aber kein Linker?

#3 Post by der-schutzhund »

Sag doch ma, was du machen willst?
RSH wrote:Hallo,

inzwischen habe ich mir xxx_devx.sfs, kernel_xxx.sfs, Lazarus und Free Pascal heruntergeladen und angesehen. Einzig: ein Linker fehlt. Oder bin ich blind?

Hat jemand eine Idee, wie ich an einen Linker für genannte Entwicklungssystem gelange?

RSH

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#4 Post by RSH »

Hallo,

@rhadon
So wie ich das verstehe (von Lazarus und Pascal habe ich gar keine Ahnung, von C usw. das meiste vergessen) heisst der Linker ld, bzw. ist ein symb. Link zu ld.bfd in devx.sfs/usr/bin.
Nur, um sicher zu gehen, daß wir dasselbe meinen:

Der Compiler übersetzt Text -in diesem Fall Quelltexte- in einen maschinensprache-ähnlichen Code, der allerdings noch nicht ausführbar ist. Diese kompilierten Dateien werden von einem Linker zu einem lauffähigen Programm gebunden (Win=exe, AtariST=prg, Linux=wohl irgendeine binäre Datei)

Wenn Du richtig liegst und ich Dich richtig verstanden habe, so ist der Linker für gcc bereits im devx enthalten.

Und eben genau soetwas suche ich für Lazarus oder Free Pascal, da ich mir davon schnellere Fortschritte verspreche, als wenn ich jetzt erst noch C lernen muß.

@ der-schutzhund
Sag doch ma, was du machen willst?
Ich möchte gerne Programme entwickeln, die als binäre Datei vorliegen und nicht als Skripte. Mein erster Ansatz wäre die Portierung meines selbstentwickelten DTP-Noteneditors, RSHs SCORE, nach Linux bzw. der Versuch (erst einmal). Da ich diesen in PASCAL geschrieben habe, wird dieses Vorhaben wohl eher nicht über ShellScript o.ä. zu realisieren sein.
Pascal "beherrsche" ich, was mir den besseren Einstieg böte und eine gewisse Zuversicht vermittelt, mit diesem Vorhaben erfolgreich sein zu können.

Und dann: mal sehen, was sich daraus entwickelt/entwickeln läßt.

Gruß,

RSH

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

#5 Post by emil »

http://www.freepascal.org/
Man kann es downloaden und dann einen installscript starten. Ich habe aber nicht ausprobiert...
Viel Glück!

Ps: die nötigen Linker sind im devx schon dabei, nur werden sie meistens implizit über gcc mit aufgerufen, bzw. es läuft sowie alles über make.

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#6 Post by der-schutzhund »

Hallo,

@RSH

Komme auch von Pascal -> Turbopascal -> Pascal für Windows -> Delphi
Da gibt es ja keinen extra Linker weil alle verwendeten Module automatisch mit in die *.exe eingebaut werden.
Mit C konnte ich mich auch nie so richtig anfreunden.
Lazarus habe ich mir mal angesehen, weil es das halt für alle Plattformen gibt und es eine Pascalbasis besitzt.
Allerdings ist es richtig groß (75MB) und ich habe sowohl unter Linux und Windows noch kein Projekt damit realisiert.
Habe mir Gambas angesehen und damit auch für Linux ein kleines Programm geschrieben, dass Daten über die Com von einem Prozessor abfragt und grafisch darstellt. Ist relativ einfach zu machen und das Gambas selbst ist auch schön klein 18MB als Pet.
Es kann eingenständige Progs. erzeugen (kein extra Linker erforderlich).

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#7 Post by RSH »

Hallo,

habe mir gerade Gambas heruntergeladen - ist aber wieder nur ein File mit Sourcecodes gewesen (gambas3-2.99.2.tar.bz2, heruntergeladen bei Heise Software).

Gibt es das nicht als .pet, zum installieren; oder als .sfs?

Ich traue mich gar nicht ran, denn bei meinem Glück, läßt es sich sowieso nicht compilieren (wie alles, was ich bisher als Sourcecode herunterlud).

Danke für die Tips,

RSH

Edit:
Komme auch von Pascal -> Turbopascal -> Pascal für Windows -> Delphi
Da gibt es ja keinen extra Linker weil alle verwendeten Module automatisch mit in die *.exe eingebaut werden.
Ich kenne Pascal gar nicht ohne Linker (ST Pascal plus) :o

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#8 Post by RSH »

Hallo.

Tja, wie ich es mir dachte: Gambas läßt sich nicht compilieren und installieren.

Zuerst muß die Datei "configure" über "autoconf" erstellt werden. Hier bekomme ich folgende Meldung:

Code: Select all

sh-4.1# cd gambas3-2.99.2
sh-4.1# autoconf
aclocal.m4:16: warning: this file was generated for autoconf 2.67.
You have another version of autoconf.  It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
sh-4.1# 
Führe ich dann "./configure" aus, erhalte ich folgende Meldungen:

Code: Select all

sh-4.1# ./configure
checking whether to enable maintainer-specific portions of Makefiles... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
=== configuring in main (/root/gambas3-2.99.2/main)
configure: WARNING: no configuration information is in main
=== configuring in gb.compress.bzlib2 (/root/gambas3-2.99.2/gb.compress.bzlib2)
configure: WARNING: no configuration information is in gb.compress.bzlib2
=== configuring in gb.compress.zlib (/root/gambas3-2.99.2/gb.compress.zlib)
configure: WARNING: no configuration information is in gb.compress.zlib
=== configuring in gb.db.mysql (/root/gambas3-2.99.2/gb.db.mysql)
configure: WARNING: no configuration information is in gb.db.mysql
=== configuring in gb.db.odbc (/root/gambas3-2.99.2/gb.db.odbc)
configure: WARNING: no configuration information is in gb.db.odbc
=== configuring in gb.db.postgresql (/root/gambas3-2.99.2/gb.db.postgresql)
configure: WARNING: no configuration information is in gb.db.postgresql
=== configuring in gb.db.sqlite2 (/root/gambas3-2.99.2/gb.db.sqlite2)
configure: WARNING: no configuration information is in gb.db.sqlite2
=== configuring in gb.db.sqlite3 (/root/gambas3-2.99.2/gb.db.sqlite3)
configure: WARNING: no configuration information is in gb.db.sqlite3
=== configuring in gb.net (/root/gambas3-2.99.2/gb.net)
configure: WARNING: no configuration information is in gb.net
=== configuring in gb.net.curl (/root/gambas3-2.99.2/gb.net.curl)
configure: WARNING: no configuration information is in gb.net.curl
=== configuring in gb.net.smtp (/root/gambas3-2.99.2/gb.net.smtp)
configure: WARNING: no configuration information is in gb.net.smtp
=== configuring in gb.pcre (/root/gambas3-2.99.2/gb.pcre)
configure: WARNING: no configuration information is in gb.pcre
=== configuring in gb.sdl (/root/gambas3-2.99.2/gb.sdl)
configure: WARNING: no configuration information is in gb.sdl
=== configuring in gb.sdl.sound (/root/gambas3-2.99.2/gb.sdl.sound)
configure: WARNING: no configuration information is in gb.sdl.sound
=== configuring in gb.xml (/root/gambas3-2.99.2/gb.xml)
configure: WARNING: no configuration information is in gb.xml
=== configuring in gb.v4l (/root/gambas3-2.99.2/gb.v4l)
configure: WARNING: no configuration information is in gb.v4l
=== configuring in gb.crypt (/root/gambas3-2.99.2/gb.crypt)
configure: WARNING: no configuration information is in gb.crypt
=== configuring in gb.qt4 (/root/gambas3-2.99.2/gb.qt4)
configure: WARNING: no configuration information is in gb.qt4
=== configuring in gb.gtk (/root/gambas3-2.99.2/gb.gtk)
configure: WARNING: no configuration information is in gb.gtk
=== configuring in gb.opengl (/root/gambas3-2.99.2/gb.opengl)
configure: WARNING: no configuration information is in gb.opengl
=== configuring in gb.desktop (/root/gambas3-2.99.2/gb.desktop)
configure: WARNING: no configuration information is in gb.desktop
=== configuring in gb.pdf (/root/gambas3-2.99.2/gb.pdf)
configure: WARNING: no configuration information is in gb.pdf
=== configuring in gb.cairo (/root/gambas3-2.99.2/gb.cairo)
configure: WARNING: no configuration information is in gb.cairo
=== configuring in gb.image.io (/root/gambas3-2.99.2/gb.image.io)
configure: WARNING: no configuration information is in gb.image.io
=== configuring in gb.image.imlib (/root/gambas3-2.99.2/gb.image.imlib)
configure: WARNING: no configuration information is in gb.image.imlib
=== configuring in gb.dbus (/root/gambas3-2.99.2/gb.dbus)
configure: WARNING: no configuration information is in gb.dbus
=== configuring in comp (/root/gambas3-2.99.2/comp)
configure: WARNING: no configuration information is in comp
=== configuring in app (/root/gambas3-2.99.2/app)
configure: WARNING: no configuration information is in app
=== configuring in examples (/root/gambas3-2.99.2/examples)
configure: WARNING: no configuration information is in examples

||
|| ALL COMPONENTS WILL BE COMPILED
||


sh-4.1# 
Sieht ja soweit (trotz der Warnungen) ganz gut aus - dachte ich. Führe ich hiernach "make" aus, erhalte ich folgende Meldungen:

Code: Select all

sh-4.1# make
make  all-recursive
make[1]: Entering directory `/root/gambas3-2.99.2'
Making all in main
make[2]: Entering directory `/root/gambas3-2.99.2/main'
make[2]: *** No rule to make target `all'.  Stop.
make[2]: Leaving directory `/root/gambas3-2.99.2/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/gambas3-2.99.2'
make: *** [all] Error 2
sh-4.1# 
Die letzte Prozedur "make install" läßt dann folgende Meldungen erscheinen:

Code: Select all

sh-4.1# make install
Making install in main
make[1]: Entering directory `/root/gambas3-2.99.2/main'
make[1]: *** No rule to make target `install'.  Stop.
make[1]: Leaving directory `/root/gambas3-2.99.2/main'
make: *** [install-recursive] Error 1
sh-4.1# 
Benötige wohl Hilfe!!!

@ der Schutzhund
Habe mir Gambas angesehen und damit auch für Linux ein kleines Programm geschrieben, dass Daten über die Com von einem Prozessor abfragt und grafisch darstellt. Ist relativ einfach zu machen und das Gambas selbst ist auch schön klein 18MB als Pet.
Es kann eingenständige Progs. erzeugen (kein extra Linker erforderlich).
Kannst Du mir sagen, welches Puppy Du verwendest und welche Version von Gambas Du heruntergeladen, compiliert und installiert hast?

Ich wäre ja bereit, für ein funktionierendes Entwicklungssystem auch noch ein anderes Puppy zu verwenden.

Danke im Voraus

RSH

thkn777
Posts: 58
Joined: Mon 28 Aug 2006, 10:06

#9 Post by thkn777 »

Öhhm... vielleicht habe ich ja was ganz wichtiges überlesen, aber hier ( --> http://www.murga-linux.com/puppy/viewto ... 307ae54e67 ) wird auf ein gambas PET verwiesen.

Ist das nicht im Repository? (kann erst heute Abend selber gucken :roll: )

Gruß,
Th.
LucidPuppy 5.2.8 "frugal" / DPup 5.x.9 "frugal" booting from USB flash drive using savefile. Acer Travelmate 5520G, 2GB RAM, ATI 2400XT, AMD TL-62 2x2.1GHz

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#10 Post by der-schutzhund »

Hier ist das Pet zu finden

http://puppy.b0x.me/software/packages/i ... &order=asc

Bei mir läuft es mit 431-de ohne Probleme.

Grüße

Wolfgang
RSH wrote:Hallo,

habe mir gerade Gambas heruntergeladen - ist aber wieder nur ein File mit Sourcecodes gewesen (gambas3-2.99.2.tar.bz2, heruntergeladen bei Heise Software).

Gibt es das nicht als .pet, zum installieren; oder als .sfs?

Ich traue mich gar nicht ran, denn bei meinem Glück, läßt es sich sowieso nicht compilieren (wie alles, was ich bisher als Sourcecode herunterlud).

Danke für die Tips,

RSH

Edit:
Komme auch von Pascal -> Turbopascal -> Pascal für Windows -> Delphi
Da gibt es ja keinen extra Linker weil alle verwendeten Module automatisch mit in die *.exe eingebaut werden.
Ich kenne Pascal gar nicht ohne Linker (ST Pascal plus) :o

thkn777
Posts: 58
Joined: Mon 28 Aug 2006, 10:06

#11 Post by thkn777 »

Kleines Update:
Nachdem ich einfach "gambas" im Suchdialog des Package Managers eingegeben habe, gab's eine größere Menge Treffer. 8) Installation war insofern schwierig, als daß bei der großen Menge dependencies die Buttons in den Dialogen nicht richtig zu sehen waren :roll:

Ansonsten: in /usr/bin gambas2 gestartet, testweise ein Projekt übersetzt und das .gambas file aus dem ROX filer gestartet --> läuft.

Viel Erfolg beim Installieren und Programmieren!

Th.
LucidPuppy 5.2.8 "frugal" / DPup 5.x.9 "frugal" booting from USB flash drive using savefile. Acer Travelmate 5520G, 2GB RAM, ATI 2400XT, AMD TL-62 2x2.1GHz

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#12 Post by RSH »

Hallo an alle und vielen Dank erst einmal, für die vielen Tips und Hinweise, dank derer ich ein gutes Stück voran gekommen bin.

Also: ich denke, ich bin nun erst einmal gut vorbereitet. Lazarus und Free Pascal habe ich nun mit Gambas und dem devx zu einer einzigen .sfs Datei kombiniert und bin gerade dabei, mir eine auf Lucid 528 basierende Entwickler-Workstation zusammenzubauen. Das .sfs ist soweit fertig und funktioniert (getestet im Livebetrieb ohne Arbeitsdatei, so, wie ich meistens arbeite). Habe schon einmal probeweise einige der Examples von Lazarus erfolgreich kompiliert und zu einem lauffähigen Programm "gelinkt".

Übrigens: Lazarus bzw. Free Pascal verwendet den Linker ld aus dem devx.sfs. Erst nachdem ich dieses eingebunden hatte, verschwand auch die letzte Fehlermeldung und aus dem Quelltext wurde ein Programm.

Im Anhang gibt es den (vorab)-Desktop von LazY Puppy, so nenne ich diese Version, zu sehen.

Danke noch einmal an alle, die mir bisher so hilfreich zur Seite standen. Ich bin dann erst einmal an der "Arbeit".

RSH
Attachments
lazy-screen.jpg
Vorab-Desktop von LazY Puppy 528
(192.38 KiB) Downloaded 402 times

Post Reply