/usr/bin/ld: cannot find -lvga

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
guennid

/usr/bin/ld: cannot find -lvga

Beitrag von guennid » 07.07.2008 10:35:38

Ich kriege beim Kompilieren die im Betreff genannte Fehlermeldung.
In einem ubuntu-Forum aus 2005 habe ich das hier zur gleichen Fehlermeldung gefunden:
The package libsvga1 provides the required libvga.so.
libsvga1 ist bei mir installiert, aber die lib ist nicht zu finden.

Hat jemand eine Idee?

Grüße, Günther

Benutzeravatar
neuss
Beiträge: 2165
Registriert: 06.11.2004 17:56:02
Lizenz eigener Beiträge: MIT Lizenz

Re: /usr/bin/ld: cannot find -lvga

Beitrag von neuss » 07.07.2008 10:44:03

Hallo,

die libvga.so ist im Paket libsvga1-dev.
Genereller Tipp, fürs Entwickeln immer auch die devs installieren :wink:

gruss neuss
stell dir vor, es geht, und keiner kriegt es hin.

guennid

Re: /usr/bin/ld: cannot find -lvga

Beitrag von guennid » 07.07.2008 10:55:12

Bingo, Herr neuss! Dankeschön!

Aber wie kommst du bloß darauf, ich hätte libsvga1 installiert. :mrgreen:

Grüße, Günther

Benutzeravatar
neuss
Beiträge: 2165
Registriert: 06.11.2004 17:56:02
Lizenz eigener Beiträge: MIT Lizenz

Re: /usr/bin/ld: cannot find -lvga

Beitrag von neuss » 07.07.2008 11:04:11

Code: Alles auswählen

apt-file search libvga.so
es handelt sich übrigens nur um einen symbolischen Link

Code: Alles auswählen

# ls -al /usr/lib/libvga.so
lrwxrwxrwx 1 root root 15 2008-07-07 10:53 /usr/lib/libvga.so -> libvga.so.1.4.3
die eigentliche Datei ist tatsächlich in libsvga1.

gruss neuss
stell dir vor, es geht, und keiner kriegt es hin.

guennid

Re: /usr/bin/ld: cannot find -lvga

Beitrag von guennid » 07.07.2008 11:15:10

Da verwirrst du mich etwas: libvga.so hatte ich gesucht und nicht gefunden. libvga1 war installiert. Es funktionierte erst, als ich nach deinem Hinweis libsvga1-dev installiert hatte.

Grüße, Günther

[edit:]

Code: Alles auswählen

svgalib: Cannot get I/O permissions.
Ich müsste was an den Rechten drehen. ZurZeit kann nur root mein Progrämmchen benutzen. :cry:

Benutzeravatar
neuss
Beiträge: 2165
Registriert: 06.11.2004 17:56:02
Lizenz eigener Beiträge: MIT Lizenz

Re: /usr/bin/ld: cannot find -lvga

Beitrag von neuss » 07.07.2008 11:50:21

Der symbolische Link libvga.so ist ja auch nur im Paket libsvga1-dev.
Die eigentliche Library libvga.so.1.4.3 auf die libvga.so verweist, ist in libsvga1.
guennid hat geschrieben:Ich müsste was an den Rechten drehen. ZurZeit kann nur root mein Progrämmchen benutzen. :cry:
Soweit ich es weiß geht es mit der SVGAlib nur als root, du müsstet also dein Programm mit "setuid root" verwenden.

Code: Alles auswählen

chown root Programm
 chmod u+s Programm
Schön ist das natürlich nicht, vielleicht hat jemand anderes hier ja eine bessere Idee.

gruss neuss
stell dir vor, es geht, und keiner kriegt es hin.

guennid

Re: /usr/bin/ld: cannot find -lvga

Beitrag von guennid » 07.07.2008 14:00:56

neuss hat geschrieben:Der symbolische Link libvga.so ist ja auch nur im Paket libsvga1-dev.
Die eigentliche Library libvga.so.1.4.3 auf die libvga.so verweist, ist in libsvga1
Dann hätte es also genügt, den link zu erstellen? Irgendwie etwas abartig!

Grüße, Günther

Benutzeravatar
neuss
Beiträge: 2165
Registriert: 06.11.2004 17:56:02
Lizenz eigener Beiträge: MIT Lizenz

Re: /usr/bin/ld: cannot find -lvga

Beitrag von neuss » 07.07.2008 17:34:38

guennid hat geschrieben:Dann hätte es also genügt, den link zu erstellen? Irgendwie etwas abartig!
Nein, es macht Sinn, außerdem ist in dem Paket noch etwas mehr.
Möchtest du bei jedem Update den Link neu erstellen oder gar den Pfad generell manuell einpflegen?
Ich glaube nicht :)

Du solltest dein Wissen über das System verbessern, es würde dir bei vielen Fragen helfen, die dein Projekt aufwirft. Du programmierst nicht mehr unter DOS, bei einem richtigen Betriebssystem ist nunmal mehr zu berücksichtigen :wink:

Zu der SVGAlib Sache habe ich nochmal kurz recherchiert. Es geht wirklich nur mit setuid. Aber braucht dein Projekt denn überhaupt Grafik?

gruss neuss

PS
warum antwortet auf guennids Fragen eigentlich niemand außer mir?
So doof sind die Fragen doch gar nicht.
stell dir vor, es geht, und keiner kriegt es hin.

guennid

Re: /usr/bin/ld: cannot find -lvga

Beitrag von guennid » 07.07.2008 18:12:27

braucht dein Projekt denn überhaupt Grafik?
Es handelt sich um eine praxiserprobte Büchereiverwaltung, die ich im Laufe der Jahre immer weiter verfeinert habe. Augenblicklich etwa 46000 Code-Zeilen. Naja, unter DOS war's ein wenig bunt und für manche Dinge hatte ich schon ein bisschen was (Pseudo-)Fenstermäßiges programmiert und dahinter möchte ich eigentlich nicht zurück.
Du solltest dein Wissen über das System verbessern
Ich möchte nochmal betonen, dass ich eigentlich nicht vom Informatik-Fach bin - auch nicht annähernd. Und ich verbringe wahrscheinlich eh schon zuviel Zeit vor der Kiste. Es muss mit "learning by doing" gehen oder es wird überhaupt nicht gehen. :wink:

Mein nächstes Problem wären die Indizes. In meiner dBase-Bücher-Tabelle hatte ich bisher den Hauptindex, der die Bücher eindeutig selektiert, über zwei Felder gelegt "Fach", STRING[3] und "Fachnummer" , WORD. Dabei würde ich auch gerne bleiben. So'n autoincrement-Feld ist mir irgendwie unsympathisch. Da werde ich aber wohl Probleme sowohl mit CHAR als auch mit VARCHAR kriegen, weil ich feste Stringlängen brauche - oder? Hältst du das mit vertretbarem Aufwand für handlebar?

Grüße, Günther

Benutzeravatar
neuss
Beiträge: 2165
Registriert: 06.11.2004 17:56:02
Lizenz eigener Beiträge: MIT Lizenz

Re: /usr/bin/ld: cannot find -lvga

Beitrag von neuss » 08.07.2008 13:28:42

Hallo, ich schon wieder.

Falls ich dich richtig verstanden habe meinst du Mehrspaltige Indizes.
guennid hat geschrieben:Da werde ich aber wohl Probleme sowohl mit CHAR als auch mit VARCHAR kriegen, weil ich feste Stringlängen brauche - oder?
Da verstehe ich definitiv nicht was du meinst, wieso und wo brauchst du feste Stringlängen?

Stell die Frage nochmal genauer. Um die Chance auf Antworten von anderen zu erhöhen, am besten in einem neuen Thread, hier passt ja der Titel nicht mehr.

gruss neuss
stell dir vor, es geht, und keiner kriegt es hin.

guennid

Re: /usr/bin/ld: cannot find -lvga

Beitrag von guennid » 08.07.2008 14:19:04

Ich wollte auch schon vorschlagen, hier jetzt Schluss zu machen. Das wird also mein letzter post in diesem thread sein.

Referenzhandbuch:
Bei solchen Fällen, in denen Leerzeichen am Ende entfernt werden oder Vergleiche diese ignorieren, hat, wenn eine Spalte einen Index hat, der eindeutige Werte erfordert, das Einfügen von Werten, die sich nur durch die Anzahl am Ende stehender Füllleerzeichen unterscheiden, eine Fehlermeldung bezüglich einer Schlüsseldublette zur Folge. Wenn beispielsweise eine Tabelle den Wert 'a' enthält, wird diese Fehlermeldung erzeugt, sobald Sie versuchen, 'a ' zu speichern.
Hier ist eindeutig leider die Übersetzung grammatisch nicht in Ordnung, aber auch das Original scheint hier recht unpräzise formuliert zu haben. Vielleicht vermittelt das dir einen Eindruck, welche Probleme ich da sehe.

Anders (dBase-geprägt) ausgedrückt: Wie müsste denn der Suchausdruck aussehen bei einem mehrspaltigen Index über ein char/varchar(3)-Feld und mediumint(5)-Feld, der den Datensatz finden soll, bei dem im char/varchar(3)-Feld ein "G" und im numerischen Feld "123" steht? Müsste er "G 123" lauten oder "G123"? Und wie sähe das dann aus bei dem Paar: "Gr" und "123" Inwiefern ist die Entscheidung char/varchar hier tangiert?

Grüße, Günther

edit: nicht mal hier kann man so was korrekt darstellen. Im ersten Besipiel sollten zwischen dem "G" und der Zahl vier Leerzeichen stehen ("G.."+"..123"), also etwa so "G....123"

Antworten