Beiträge von Plantschkuh!

    Hi. Ich quäle mich schon den ganzen Tag damit, eine Library names JPL (Interface zwischen Java und Prolog, Teil von SWI-Prolog) auf meinem iBook mit Mac OS X 10.3.9 zum laufen zu bringen.

    Mittlerweile bin ich so weit, daß ich versuchen kann, Beispielprogramme zu starten, worauf ich solche Fehlermeldungen kriege:

    Code
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpl in java.library.path
            at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)
            at java.lang.Runtime.loadLibrary0(Runtime.java:788)
    ...

    OK, das Java braucht eine Library namens jpl. Die habe ich auch, in Form eines Files mit Namen libjpl.so .
    Laut JNI-Tutorial (http://java.sun.com/docs/books/tut…setlibpath.html) muß das File nun in den "JavaSoft Folder in the Extensions folder in the System Folder for shared libraries". Leider heißt das so nichts, und einige geratene Pfade bringen keinen Erfolg. Ich habe auf jeden Fall sicher nichts auf meiner Platte, was sich JavaSoft nennt.
    Außerdem bringt heftiges gegoogle zwar nichts wirklich brauchbares zutage, aber anscheinend heißen solche Libraries bei anderen Leuten nicht .so, sondern .dylib oder so.
    Auch wenn ich java mit -Djava.library.path=/pfad/zur/library aufrufe, habe ich keinen Erfolg. Setzen von LD_LIBRARY_PATH oder DYLD_LIBRARY_PATH bringt auch nichts.

    Daher meine konkreten Fragen:
    1. Wie muß diese JNI-Library heißen, damit sie Java unter dem Namen jpl findet?
    2. Wo muß die Library liegen?

    Ich hoffe, es hat jemand von euch schon Erfahrung mit JNI auf Mac OS und kann mir helfen. Danke mal im Voraus :thumb:

    Edit: Ah, /Library/Java/Extensions/libjpl.jnilib wird gefunden.

    • Es gibt Code-Tags. Es gibt sie aus einem bestimmten Grund, nämlich zum einigermaßen lesbaren Posten von Code.
    • Einiges von dem hilft dir vielleicht: http://www.catb.org/~esr/faqs/smart-questions.html . Insbesondere wäre es rasend interessant zu wissen, was du von uns willst. Kompiliert dein Code? Wenn nicht, zeig die Fehlermeldungen her. Rennt er, aber tut er was falsches? Beschreib uns, was er tut und was er tun sollte.
    • void main gibt's nicht, das heißt int main. Dein Programmierkurs stinkt, du solltest wohl einen neuen suchen.
    • ptr=&feld[20]; ist ziemlich sicher nicht das, was du wolltest. Diese Zuweisung setzt ptr als Zeiger auf das (nicht existente) zwanzigste Element von feld! Du meinst ptr = &feld[0]; oder weniger konfus einfach ptr = feld;
    Zitat von mtintel

    Verwende Word weil ich nicht die Zeit derzeit habe mich mit Latex auseinander zu setzen


    http://sts.tuwien.ac.at/sss/swp/
    "Über eine intuitiv zu bedienende grafische Benutzeroberfläche vereint Scientific WorkPlace den Schrift- und Formelsatz unter Nutzung von TeX und LaTeX." Habs selber noch nie probiert, könnte aber recht cool sein; 4 Euro kann man da eventuell schon mal reinbuttern, um das zu probieren.
    Und LyX gibt's auch, wobei ich mich da spontan nicht erinnere, wie komfortabel man damit Formeln machen kann.
    (Ja, ich habe den Einwand gesehen, daß alles auch als Word-Dokument vorliegen muß. Ich wollt das trotzdem loswerden.)

    Zitat von and_Y

    Füge im userContent.css [...] und im user.js folgendes ein:


    Nach einiger Spielerei funktioniert das bei mir jetzt so, daß die Quotes zwar keine bunten Balken mehr haben, aber auch keine '>'-Zeichen mehr. Kriegt man das echt nur mit dieser Extension hin?
    (Wenn ja, tu ich sie mir schon drauf, aber ich weiß nicht... so kann man doch keine Software schreiben, Kinder!)

    http://www.zid.tuwien.ac.at/:

    Zitat


    Wegen Inbetriebnahme eines neuen Storage-Systems wird der Benutzerbetrieb auf dem Server für Studierende zu folgenden Zeiten unterbrochen sein:

    stud3.tuwien.ac.at: Sonntag 27.03., 22:00 Uhr bis Montag 28.03. ca. 08:00 Uhr
    stud4.tuwien.ac.at: Montag 28.03., 22:00 Uhr bis Dienstag 29.03, ca. 08:00 Uhr

    Zitat von Cihande

    Ich Glaube daran, das jeder am Ende das bekommt, was er verdient.


    No wunderbar, dann verstehst du ja eh, wieso dir hier nicht geholfen wird: Weil du es nicht verdienst, daß andere deine Hausübung für dich machen, ohne daß du irgendwas dafür tust.
    (Ja, ich weiß, es ist nicht deine Hausübung, ist gut.)

    Jou, das Schlüsselwort ist "fully defined" (OK, sind zwei Wörter :winking_face: ). Der Compiler kann keinen Code für Klasse B erzeugen, solange er nicht Klasse A kennt; z.B. wird die Größe von Klasse A für Feld- und Methodenzugriffe gebraucht, und für Konstruktoren muß bekannt sein, wie ein A konstruiert werden muß und so. Also die forward declaration muß auch durch eine tatsächliche Definition von A ergänzt werden.

    Zitat von \LaTeX

    Oder wird nur einmal der Speicher fuer Methoden angefordert und immer wieder verwendet?


    Ja, die Methoden liegen nur einmal im Speicher. Für jede Klasse gibt es eine Tabelle mit Pointern zu ihren Methoden, die wird zur Auflösung der Aufrufe verwendet.

    Direkten Weg weiß ich keinen, aber...

    Code
    \setcounter{footnote}{0}
    \addtocounter{footnote}{-1}


    sind in LaTeX zwei Möglichkeiten, einzufügen irgendwo vor einer Fußnote, deren Nummer du manipulieren willst.
    Allerdings mußt du dafür manuell den Überblick über die Numerierung behalten.

    Edit: Oh, \footnote hat ja ein optionales Argument für die Nummer:

    Code
    \footnote[1]{Mitglied des Forums}


    oder so. Wie man das Lyx beibringt, mußt du aber selber rausfinden :winking_face:

    Wenn wir schon dabei sind, und nur aus Interesse: Kann man Word eigentlich dazu kriegen, Wörter am Zeilenende abzutrennen?

    Und zum ursprünglichen Thema: Man wird sehr selten gezwungen, mit Word zu arbeiten. Wenn man es sich aussuchen kann, nicht fluchen, sondern latexen :thumb: (und bei der plazierung von Bildern darüber fluchen :D)

    c89 ist normalerweise auch nur gcc mit -ansi aufgerufen (oder allgemeiner halt der ortsansässige C-Compiler im strengen C89-Modus). Falls du nur diese beiden unterscheiden willst: gcc definiert das Makro __STRICT_ANSI__ genau dann, wenn mit -ansi kompiliert wird. Vielleicht reicht es ja für deine Zwecke, das zu testen.

    Das ist schon bissi besser:

    Zitat von Stellina

    free(feld)
    feld = NULL;
    free(hilfsfeld)
    hilsfeld = NULL;


    Das kann so schon stimmen, aber es kommt halt aufs restliche Programm an. Poste am besten ein vollständiges, aber möglichst kurzes Programm, das dieses Problem demonstriert.
    Hast du sicher sowohl feld als auch hilfsfeld mit malloc o.ä. angelegt? Hast du Pointerarithmetik betrieben?

    Zitat von thex

    short-circuit operators


    Das sind die Operatoren, die "lazy" ausgewertet werden, z.B. in C und Konsorten das logische und und oder: In a && b wird b nur ausgewertet, wenn a true ergibt, in a :tired_face: b nur, wenn a false ergibt.
    Ich hab dafür auch schon deutsche Ausdrücke gehört, aber ich kann mich jetzt an keine erinnern.

    Zitat

    constant expressions einfach als "Ausdrücke für Konstanten" ?


    Konstantenausdrücke?

    Generell würd ich raten, jemanden aufzusuchen, der bei sowas wirklich kompetent ist. Wenn du etwa bei einem complang-Professor (Puntigam vielleicht) in die Sprechstunde gehst, kann dir wohl geholfen werden.