Beiträge von Incazzato

    Bsp. libstdc++.a:

    Code
    bitset.o: 00000000 T _ZNKSt12_Base_bitsetILj1EE15_M_do_find_nextEjj 00000000 T _ZNKSt12_Base_bitsetILj1EE16_M_do_find_firstEj 00000000 D _ZSt12_S_bit_count 00000000 D _ZSt12_S_first_one codecvt.o: 00000000 t _GLOBAL__I__ZNSt7codecvtIcc11__mbstate_tEC2Ej U __gxx_personality_v0 U _ZdlPv
    ...

    Da steht also drin, welche object-files welche Definitionen enthalten. Wo aber sind diese object-files? Ich verstehe nicht ganz, woher der Linker schlussendlich den einzufügenden Binärcode kriegt. Ich dachte immer, .a - libs enthalten komplette object-files, so wie in jar-Archiven .class-Dataien liegen, aber scheinbar sind da nur Referenzen drin. Aber wohin zeigen die? Oder unterliege ich einem Verständnisfehler des Ganzen?

    Ich brauche zum Testen eines HDTV-Players ein Programm, das mir Files verschiedener Formate (MPEG-2 TS/PS, MP4, ...) mit verschiedenen A/V-Kodierungen (H.264-Video in HD-Auflösung, AC-3/AAC-Sound, ...) enkodieren/transkodieren/muxen kann.
    Falls sich jemand auf diesem Gebiet gut auskennt, hätte ich auch gleich einen Nebenjob anzubieten, meldet euch bei Interesse einfach per PM!

    Zitat von bnd

    Vielleicht ist das C/C++ plugin von eclipse auch ein Versuch wert...


    Ja, könnt ich mir auch anschauen. Schreckt mich aber ein bisschen ab, weil ich noch nie wirklich mit Eclipse zu tun hatte, weiß aber, dass es ziemlich umfangreich ist.
    Das empfohlene kscope wäre eigentlich sehr gut, wenn die Features nicht so rudimentär implementiert wären. Z.b. wenn man noch nach Funktionen/Variablen... sortieren könnte, wenn bei der Code-Completition für eine struct-Variable nur die eigenen Member vorgeschlagen würden statt alle bekannten...
    Aber in Kombination mit einer detaillierten doxygen-Dokumentation komme ich recht gut damit zurecht.
    Vielleicht installiere ich probeweise auch mal Eclipse...

    Zitat von J.Petso

    Wenn ich mich nicht täusche, suchst du etwas wie CScope bzw. KScope, die genau für die Navigation in umfangreichen C-Projekten gemacht worden sind.


    Die Beschreibungen dazu klingen in der Tat sehr danach! Leider hat SuSE 9.3 kein Paket für kscope. Wie ist nochmal die URL dieser rpm-Suchmaschine?
    Selbst kompilieren kann immer wieder eine Qual sein, weil man meist nicht so genau weiß, welche Bibliotheken vorausgesetzt werden. Das muss man dann aus den Fehlermeldungen beim Kompilieren "erraten". Aber ich habe noch nicht aufgegeben...

    So früh schon so wach im Kopf? ;)

    Weils so schön ist, noch meine endgültige Version:

    Waren noch kleine Änderungen nötig, damit bei innerer und äußerer Verschachtelung alls stimmt. z.B blieben in Header-Files Zeilen mit "#ifdef endif" übrig.
    Aber jetzt habe ich den ganzen (entKACKten) Kack ohne Syntaxfehler kompiliert.

    muchos gracias!
    PS: ich war mal in deiner TheoInf-Übung ;)

    Zitat von Plantschkuh!

    Zu Perl äußer ich mich nicht, aber hier ist eine potentielle primitive Lösung mit lex (ja, die erste Zeile gehört eingerückt):


    Das liest sich sehr gut!
    In der Tat sollen nur genau die von einem bestimmten Makro abhängigen Blöcke raus, sagen wir mal von "KACK" . Ich versuche das mal einzubauen:


    Syntax ist einfach geraten, korrigiere mich bitte gegebenenfalls. Muss bei "#ifdef KACK" das Leerzeichen gequotet werden?
    Kann ich die auszuführenden Anweisungen so hintereinanderschreiben? Was bedeuten "\n" und "." am Ende?

    Vielen Dank übrigens!

    Ich habe mit teilweise unglaublich unstrukturiertem C/C++ - Code zu tun, bei dem oft weite Teile in #ifdef xy - Klauseln eingebettet sind.
    Ich frage mich, wie sich folgendes mit vertretbarem Aufwand machen lässt:
    Alle source-files sollen nach
    #ifdef XY
    code...
    #endif
    gescannt werden, die Zeilen dazwischen sollen komplett rausgelöscht werden (nein, ich werde den Code nieee mit definiertem XY kompilieren müssen!). Allerdings darf sich so ein Parser nicht durch geschachtelte #ifdef's drausbringen lassen.
    Außerdem sollte im Fall
    #ifdef XY
    code...
    #else
    code...
    #endif
    zusätzlich das abschließende #endif entfernt werden, damit der Präprozessor keinen Syntax-Fehler bringt.
    Ich wäre noch in der Lage, dies formal - etwa in EBNF - zu formulieren. Aber mit welchen Tools macht man sowas dann? Geht es mit dem Präprozessor selber irgendwie? Oder mit sed/awk (Ich habe keinen Schimmer, wie man damit umgeht)?
    Wäre für Tipps dankbar.

    Ich versuche nun schon seit einer Weile, die TU-Mailbox über IMAP statt POP3 zu verwenden, jedoch gelingt es mir nicht, funktionierende Filter zu erstellen.
    Ich habe unter https://webmail.tuwien.ac.at/preferences.rules.php
    folgende Regeln erstellt:

    Code
    Aktuelle Regeln
    0  Mindestens ein Kriterium erfüllen in "[SPAM?]" in Betreff und dann Verschieben zu SPAM
    1  Alle Kriterien erfüllen in "182.064" in Empfänger und dann Verschieben zu Micro
    2  Alle Kriterien erfüllen in "181.117" in Empfänger und dann Verschieben zu Datenmodellierung
    3  Alle Kriterien erfüllen in "@tuwislist.tuwien.ac.at" in Empfänger und dann Verschieben zu TUWIS
    4  Alle Kriterien erfüllen in "185.263" in Empfänger und dann Verschieben zu TheoInf


    und

    Code
    Regel Optionen
      Regeln immer wenn die INBOX aufgerufen wird anwenden always


    Was auch immer ich mache, die Regeln werden nicht angewendet. Hat sich sonst jemand damit befasst bzw. kann mir einen Tipp geben?

    Nunja, es ist nicht so, dass CFLAGS nichts bringen würden. Zwischen -O0 und -O1 ist meist ein sehr großer Unterschied. Die weiteren Optimierungen bringen im Allgemeinen nur mehr wenig und nichts. Das hat aber insofern nicht viel mit Gentoo zu tun, als meines Wissens so ziemlich jede Binär-Distro ihr Pakete ebenfalls mit -O2 kompiliert.
    Ich vermute, der Performance-Mythos stammt noch aus den Anfangszeiten von Gentoo, nachzulesen hier.
    daff: An der MES-Theorie auf greenfly.org ist schon was dran! Ich kannte vorher auch fast nur Mandrake...

    Zitat

    Das feine ist einfach, dass man so gut wie alles mit apt-get saugt, und nicht extra auf Paketsuche geht.


    Wo ist eigentlich der wesentliche Unterschied zwischen rpm und deb? Soweit ich das verstehe, ist das rpm-Kommando das Äquivalent zu dpkg unter Linux. apt-get ist dann schon eine andere Ebene, aber da gibt es ja auch auf rpm-Seite Tools wie urpmi (auch yum?), die ähnlich funktionieren. urpmi z.B. kann auch mehrere Quellen verwalten, wo ist da also der elementare Unterschied zu apt-get?
    Bzgl. Paketsuche: Angenommen, du möchtest den mplayer oder Acrobat Reader installieren, dann müsstest du doch auch erst auf die Suche gehen?!

    Zitat

    Natürlich haben USE-Flags Auswirkungen auf die Abhängigkeiten, das hab ich ja auch nicht bestritten, sorry wenns so geklungen hat Worum es aber geht ist, dass Abhängigkeiten selbst eben nicht über das zu- und wegschalten von USE-Flags gesteuert werden können.


    Seh nur ich den Widerspruch? Sicher gibt es viele USE-flags, die die Abhängigkeiten nicht beeinflussen - bijektiv ist das also wirklich nicht ;) - aber mit sehr vielen lassen sie sich sehr wohl steuern. Das sind sozusagen optionale Abhängigkeiten, die das Programm nicht "zwingend" braucht. Das ist auch der Grund, warum sowas fast nur mit einer Source-Distro möglich ist. Schau dir mal den mplayer an, der bietet ca. 40 USE-flags, von denen viele Abhängigkeiten implizieren. Um sowas mit Binärpaketen zu ermöglichen, müsste man jedes Paket x-fach kompiliert vorliegen haben, und dann jedes noch mal y-mal, um verschiedene Versions-Kombinationen zu ermöglichen, also stark quadratisch wachsender Aufwand. Das ist der Grund für Source-Pakete, nicht irgendwelche Optimierungen durch Selber-Kompilieren (an die Adresse derjenigen, die das Selbst-Kompilieren als sinnlos erachten).
    Bei Debian wird dann z.B. ein Paket, das in Gentoo x USE-flags hat, in x-k Unterpakete aufgeteilt, die teilweise irgendwie untereinander abhängig sind. Ich will nicht sagen, dass das die schlechtere Lösung ist, aber manchmal finde ich das Ganze schon ziemlich undurchsichtig. Ich habe Debian auf einem alten File-und-Experimentier-Server laufen, da gefällt es mir ganz gut. Hat eben alles seine Vor- und Nachteile.

    Ich verkneife mir nicht eine Diskussion über CFLAGS. In der Tat sind die CFLAGS nur ein Bruchteil dessen, wie man Gentoo bzw. ein System im Allgemeinen "tunen" kann. Ich bin im Forum schon auf Tuning-Howtos gestoßen, da ist bis zum Ändern irgendwelcher Boot-Skripts alles möglich dabei. Solche Leute wissen von jedem Flag, das sie setzen ganz genau, was es bewirkt. Ob solches Tuning ausschließlich als Selbstzweck durchgeführt wird oder nicht, kann ich nicht beurteilen, auf jeden Fall aber würde ich es nie wagen, solche Leute kategorisch als Kinder oder Zeitverschwender abzustempeln, das finde ich an deiner Aussage überheblich. Ich glaube nicht, dass viele von uns 24 Stunden am Tag ausschließlich Dinge tun, die von außen betrachtet nicht auch als Zeitverschwendung beurteilt werden könnten - z.B. sich so viel Zeit für eine solche Diskussion nehmen ;-). Ich würde es als eine Art Sport sehen, was viele betreiben, das ist ähnlich wie wenn jemand (hauptsächlich unter Windows) Stunden dafür aufwendet herauszufinden, welche Grafikkarten-Treiber mit welchen Feineinstellungen das letzte Frame bei irgendeinem Spiel bringen, um dann stolz die erzielten Frameraten in die Signatur zu schreiben.

    Zitat

    Trotzdem ist und bleibt dieses Tuninggefreake kein Argument pro oder contra. Stattdessen wird Gentoo dadurch nur in schlechtes Licht gerückt und von vielen Leuten als "Spielzeug" abgestempelt (und viele Kiddies "steigen darauf um", weil sie glauben, darin eine Spielzeug-Distro gefunden zu haben). Dabei ist Gentoo definitiv viel mehr als das.


    Nun ja, es kann sehr wohl ein Argument pro sein, wenn jemand sowas sucht. Wegen der "Kiddies" würde ich mir nicht allzuviele Sorgen machen. Wenn sie blind drauflosoptimieren, wird ihnen irgendwann die Lust vergehen, wenn nie etwas geht, oder sie lernen daraus. Daran störend ist höchstens, wenn sie in Foren laut um Hilfe schreien, aber das kann auch manchmal recht unterhaltsam sein... Das Argument mit dem "Abstempeln" hat schon was. Glaube aber nicht, dass solche Gerüchte allzu sehr schaden können, wer sich wirklich interessiert, wird sich auch etwas fundierter informieren...
    Etwas mehr Toleranz und weniger Missionierungsdrang würde der Linux-Community guttun.

    Zitat

    USE-Flags und Abhängigkeiten haben nur bedingt etwas miteinander zu tun. Wenn ein Programm/ebuild irgendwelche Abhängigkeiten hat, dann werden die auch installiert, unabhängig von den gesetzten USE-Flags.


    Das stimmt definitiv nicht, USE-flags haben nicht selten sogar enorme Auswirkungen auf die Abhängigkeiten. Kleines Beispiel:


    Im 1. Fall würde amarok "reremergt" (ist schon installiert), im 2. wg dem "mysql"-USE-flag mysql installiert, die verlangten perl-Komponenten wiederum sind von einem USE-flag von mysql abhängig (das ist noch ein relativ "harmloses" Beispiel), das natürlich wiederum deaktiviert werden kann:

    Code
    Alfa mnt # USE="mysql -perl" emerge -p amarok
    
    
    These are the packages that I would merge, in order:
    
    
    Calculating dependencies ...done!
    [ebuild  N    ] dev-db/mysql-4.0.24
    [ebuild   R   ] media-sound/amarok-1.2.2


    Zu deinen Beispielen: Natürlich kann man nicht jede Abhängigkeit mit USE-flags loswerden, so gut wie jedes Programm hat irgendwelche grundlegenden Abhängigkeiten, alles darüber hinausgehende versuchen die USE-flags optional zu machen. Du nennst mit licq ein gutes Beispiel: Es funktioniert auch ohne GUI (über Kommandozeile oder Remote), deshalb lässt es sich sich optional ohne qt-Abhängigkeit (die ja für die GUI nötig wäre) kompilieren. Dann hat man aber keine GUI mehr ;)

    Zitat


    Ad CFLAGS: Sich damit rumzuspielen und da und dort möglichst noch eine Millisekunde mehr rauszuholen, ist was für Kinder und Leute, die mit ihrer Zeit nix besseres anfangen können. Wertlos, und sicher kein Grund oder Argument pro oder contra Gentoo. Es reicht locker und so gut wie immer, die Defaulteinstellungen zu haben: "-march=pentium4 -pipe -O2 -fomit-frame-pointer".


    Wenn das mal keine überhebliche Aussage ist... Weitere Kommentare verkneife ich mir besser!

    Beliebtes Zitat: "Gentoo is all about choice". Dem ist nicht viel hinzuzufügen. Gentoo versucht alle Möglichkeiten offenzulassen, dabei aber trotzdem mehr Komfort zu bieten als etwa Slackware. Warum ich Gentoo benutze: weil es meiner Meinung nach die steilste Lernkurve bietet, wenn man sich dafür interessiert und sich die Zeit nimmt, ab und zu was zu lesen. Auf dem Laptop habe ich übrigens Ubuntu installiert, das ist so ziemlich das Gegenteil.
    Ja, es gibt genug Gentoo'er, die sich das ganze System schon mit x verschiedenen CFLAGS neu kompiliert haben, "all about choice" eben. Es gibt aber auch genug Gentoo'er, die sich über sich selbst lustig machen können ;)
    http://forums.gentoo.org/viewtopic-t-309752.html
    http://forums.gentoo.org/viewtopic.php?…der=asc&start=0

    Zitat

    Das Kompilieren find ich leider immer unnötiger, weil ich keine Zeit dazu hab mich mit Ideal-CFlags etc. rumzuspielen


    "Rumspielen" triffts. Gentoo hat sich ein wenig selbst ins Bein geschossen damit zu werben, dass wg. des angepassten Kompilierens alles schneller geht. In der Praxis kriegt man höchstens ein schnelles System, wenn man es mit USE-Flags so schlank wie möglich hält, aber sicher nicht durch optimiertes Kompilieren.

    Zitat

    Und mein letzter Wunsch: Wann schließen sich endlich alle Distros zusammen, und bauen DAS gnu/linux.


    Das finde ich absolut unnötig bzw. widersprüchlich. Im Gegenteil werden die Distros immer mehr und mehr. Wenn ich nur an Knoppix denke: ist noch recht jung und basiert auf Debian, in der Zwischenzeit gibt es schon unzählige Distros, die ihrerseits auf Knoppix basieren! Es braucht nicht DAS Gnu/Linux, sondern einheitliche Spezifikationen/Schnittstellen, die es ermöglichen, für Linux zu entwickeln, ohne unzählige Feinheiten unterschiedlicher Distros berücksichtigen zu müssen. Z.B. sehe ich keinen Grund, wieso die beiden großen DMs KDE und Gnome nicht koexistieren sollten, dank der Arbeit von freedesktop.org funktioniert etwa auch die Zusammenarbeit zwischen qt- und gtk-Programmen immer reibungsloser.
    Ich hasse nichts mehr als die ganzen sinnlosen Glaubenskriege in der Open-Source-Community, die Anmaßung vieler zu glauben, alleine alle Wahrheit zu besitzen; gerade die Vielfalt ist ja so ziemlich der wichtigste Pluspunkt von Open-Source. Ich halte auch nichts von blinder "Linux muss Windows besiegen" - Wut. In der Tat würde eine größere Verbreitung von Linux vieles erleichtern, ich denke da etwa an die Unterstützung durch Hardware-Hersteller. Ich wünsche mir auch, dass das MS-Monopol gebrochen wird, weil Monopole generell dem Fortschritt und der Fairness im Markt nicht sehr förderlich sind. Aber ich bin recht zuversichtlich, dass sich in dieser Hinsicht in nächster Zeit einiges tun wird, sei es durch Linux, MacOSX oder sonstwas.