Gå til innhold

søppel

Medlemmer
  • Innlegg

    838
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av søppel

  1. ser at det er en debatt som begynner her og det trenger vi ikke. de som liker linux liker det og de som liker windows liker det. de som liker linux liker det og de som liker windows liker det.

    Hvem, hva, hvor? Sug meg i rævva -- les det jeg skriver.

     

    Bruk et verktøy

    ...

    Jeg er sikker på at MS distribuerer et tilsvarende verktøy -- noen andre her vet sikkert hva de har kallt det.

    ...

    (det det snakkes om her kan brukes i sammenheng med alle kompilere (og OS/kompiler-verktøy) -- det er bare trivielle forskjeller i syntax o.s.v.)

     

    Hva har dette med Linux kontra Windows å gjøre?

     

    Dette er slik jeg løser slike problemer -- (jupp, både under Linux og Windows - og jeg vet andre kompilere+verktøy har samme funksjonalitet).

     

    Du spør etter løsning på problem -- jeg svarer -- problem?

  2. Ser ikke ut som om linkeren er enig. Om han vet, at han vet, at han vet, at han gjør det rektig (hvordan? - docs skrevet av andre) - så kunne det være en idé å sjekke i libbet om symbolet faktisk var der (hvordan? - man tar en titt selv) - selv om det er der.

     

    (feil under nedlasting av lib? i dunno)

     

    Edit:

    men for all del -- folk får gjøre hva de vil

  3. Bruk et verktøy for å sjekke hvilke symboler som ligger hvor.

     

    void a();

     

    int main()

    {

    a();

    return(0);

    } // main

     

    #include <iostream>

     

    void a()

    {

            std::cout << "hello\n";

    } // a

     

    $ g++ -g -c a.cpp

    $ g++ -g -c b.cpp

     

    ..kompileres uten problemer, som hos deg. (filen b.cpp tilsvarer biblioteket 'DirectX')

    Men når vi linker:

     

    $ g++ -g a.o

    a.o(.text+0x1d): In function `main':

    /home/lars/tests/a.cpp:5: undefined reference to `a()'

     

    Så må vi leite, her er det jo veldig lett å gjette på første forsøk hvor symbolet `a()' ligger:

     

    $ nm b.o | c++filt

    00000170 t global constructors keyed to _Z1av

    00000100 T a()

    0000011c t __static_initialization_and_destruction_0(int, int)

    ...

     

    *bingo* .. dette er filen jeg må linke inn for at den skal finne symbolet `a()', slik:

     

    $ g++ -g a.o b.o -o prog

     

    kjøres:

    $ ./prog

    hello

     

    Jeg er sikker på at MS distribuerer et tilsvarende verktøy -- noen andre her vet sikkert hva de har kallt det.

     

    Edit:

    Det er lurt å sette seg inn i grunnleggende ting - for å spare seg selv for en masse bryderier:

    http://www.network-theory.co.uk/docs/gccintro/

    (det det snakkes om her kan brukes i sammenheng med alle kompilere -- det er bare trivielle forskjeller i syntax o.s.v.)

  4. Takker-å-bukker, Kjetil7 .. den fungerte utmerket. Er heldigvis sjeldent jeg surrer med dette, men uheldigvis blir det da vanskelig når man først må surre med det.

     

    Her er et utdrag av sammenhengen dette blir tatt i bruk i:

     

    #define M_strx(x) #x

    #define M_expand(x) x

    #define M_createPath(path, file) M_strx(path/file)

     

     

    // Inline handling.

    #undef M_inline

    #if defined(M_win32) && defined(M_use_inline)

      #undef M_use_inline

      #define M_inline inline

      #include M_createPath(win32,M_expand(M_definition))

    #elif defined(M_wince) && defined(M_use_inline)

      #undef M_use_inline

      #define M_inline inline

      #include M_createPath(wince,M_expand(M_definition))

    #elif defined(M_linux) && defined(M_use_inline)

      #undef M_use_inline

      #define M_inline inline

      #include M_createPath(linux,M_expand(M_definition))

    #else

      #define M_inline

    #endif

     

    #undef M_definition

     

    (M_win32, M_wince eller M_linux blir satt av build-systemet)

     

    class A {

    public:

    void a();

    };

     

    #define M_definition some-library.cpp

    #include "macro_cleanup.hpp"

     

    M_inline void A::a()

    {

    }

     

    M_inline void A::a()

    {

    }

     

    M_inline void A::a()

    {

    }

     

    o.s.v.

     

    #define M_use_inline

    #include "some-library.hpp"

     

    int main()

    {

      A a;

      a.a();

      return(0);

    }

     

    g++ -D M_linux -I. -g -O2 program1.cpp -o program1

    ==> ok (og en disassembler bekrefter at ting har skjedd)

     

    #include "some-library.hpp"

     

    int main()

    {

      A a;

      a.a();

      return(0);

    }

     

    g++ -D M_linux -I. -g -O2 program2.cpp -o program2

    ==> feiler:

    /tmp/ccfukjD3.o(.text+0x14): In function `main':

    /home/lars/tests/program2.cpp:13: undefined reference to `A::a()'

     

    Kjempemessig -- her må man linke med biblioteket, som forventet.

     

    Igjen .. takker :]

  5. Gentoo er/var enklest og best for meg. Ikke noe surr med dependencies, og pakker til omtrent alt av programvare man kommer borti.

     

    Alt annet blir bare rart - f.eks. så var det et slit å installere emacs på en server - der jeg selvfølgelig ikke var interessert i X og GTK-støtte o.s.v. Dette var Debian, tror jeg - er en stund siden. Med Gentoo ordner det seg slik:

     

    emerge emacs -pv

    Calculating dependencies ...done!

    [ebuild  N    ] x11-base/xorg-x11-6.8.1.902  -3dfx -3dnow +bitmap-fonts -cjk -debug -dlloader -dmx -doc +font-server -hardened -insecure-drivers -ipv6 +minimal -mmx -nls -opengl +pam -sdk -sse -static +truetype-fonts +type1-fonts (-uclibc) -xprint -xv 43,277 kB

    [ebuild  N    ] media-libs/giflib-4.1.3  +X +gif 556 kB

    [ebuild  N    ] media-libs/libungif-4.1.3  +X +gif 429 kB

    [ebuild  N  ] app-editors/emacs-21.3-r5  +X* -Xaw3d -debug -gnome -leim -lesstif -motif -nls -nosendmail 0 kB

     

    Aha .. plussen forran X sier at "denne blir kompilert med støtte for X" -- og en haug med skrot blir hentet ned. Så jeg gjør slik:

     

    USE="-X" emerge emacs -pv

    [ebuild  N  ] app-editors/emacs-21.3-r5  -X -Xaw3d -debug -gnome -leim -lesstif -motif -nls -nosendmail 0 kB

     

    ..der ja .. enkelt å greit. Skriver jeg nå USE="-X" emerge emacs (uten -pv bak) så lastes programvaren ned, kompileres og installeres automatisk.

     

    Står masse om disse tingene på Gentoo's hjemmeside.

  6. #define CREATE_PATH(path, file) #path "/" #file
    CREATE_PATH(somepath, somefile.cpp)

     

    Kjører jeg dette igjennom preprosessoren (cpp i mitt tilfelle) får jeg ut: "somepath" "/" "somefile.cpp"

    ..noe som er o.k. for kompileren; string-litterals blir kombinert automatisk, så saken ovenfor tilsvarer "somepath/somefile.cpp" for den.

     

    Men for videre bruk i preprocessoren er det ubrukelig - for eksempel her:

    #include CREATE_PATH(somepath, somefile.cpp)

     

    Noen forslag?

     

    Vær så snill -- ikke spør "hvorfor i helvette jeg vil gjøre dette?!?!?!" .. om noen lurer veldig så kan jeg forklare hvorfor etterpå, da jeg ikke har tid nå.

  7. Du kan få plass på min server, på nostdal.org, der er det støtte for:

    "Apache/2.0.52 (Gentoo/Linux) mod_python/3.1.3 Python/2.3.4 mod_fastcgi/2.4.2 mod_ruby/1.2.4 Ruby/1.8.2(2004-12-22) PHP/5.0.3 Server at nostdal.org"

     

    ..så du kan leke deg masse med scripting i forskjellige språk (i tillegg til HTML, som /ikke/ er scripting).

     

    Du kan f.eks. få et domene som:

    johnnybravo.ath.cx ..eller

    johnnybravo.blogdns.com ..osv

     

    (man trenger ikke skrive "www" forran domenenavnet)

     

    .. det er gratis ..

     

    ..eller et av disse "etternavnene":

      <option>ath.cx</option>

      <option>blogdns.com</option>

      <option>blogdns.net</option>

      <option>blogdns.org</option>

      <option>dnsalias.com</option>

      <option>dnsalias.net</option>

     

      <option>dnsalias.org</option>

      <option>dynalias.com</option>

      <option>dynalias.net</option>

      <option>dynalias.org</option>

      <option>dyndns.biz</option>

      <option>dyndns.info</option>

     

      <option>dyndns.org</option>

      <option>dyndns.tv</option>

      <option>dyndns.ws</option>

      <option>game-host.org</option>

      <option>game-server.cc</option>

      <option>gotdns.com</option>

     

      <option>gotdns.org</option>

      <option>ham-radio-op.net</option>

      <option>homedns.org</option>

      <option>homeftp.net</option>

      <option>homeftp.org</option>

      <option>homeip.net</option>

     

      <option>homelinux.com</option>

      <option>homelinux.net</option>

      <option>homelinux.org</option>

      <option>homeunix.com</option>

      <option>homeunix.net</option>

      <option>homeunix.org</option>

     

      <option>is-a-geek.com</option>

      <option>is-a-geek.net</option>

      <option>is-a-geek.org</option>

      <option>isa-geek.com</option>

      <option>isa-geek.net</option>

      <option>isa-geek.org</option>

     

      <option>kicks-ass.net</option>

      <option>kicks-ass.org</option>

      <option>merseine.nu</option>

      <option>mine.nu</option>

      <option>myphotos.cc</option>

      <option>serveftp.net</option>

     

      <option>serveftp.org</option>

      <option>servegame.org</option>

    (ignorer <option> -sakene rundt navnene.)

     

    *.no -domener koster penger, og du må ha registrert et firma for å få et.

     

    Edit:

    PostgreSQL og MySQL er også installert btw.

  8. Det som koster minst blir vel å finne midten av strengen, og så gå skritt for skritt "paralellt" begge veier til man møter to char'er som ikke er like (ikke palindromt). Hvis man ikke finner dette er strengen et palindrom.

     

    123344321 gir:

     

    4 4

    3 3

    2 2

    1 1

     

    ...mens 12344331 ville gitt:

     

    4 4

    3 3

    2 3 *bang* .. ikke palindromt.

     

     

    Jeg er ikke sikker på dette -- bare første innfall .. :]

  9. Jada, HTML er fort gjordt å komme i gang med.

     

    (bare ikke kall det programmering, for det er det ikke :] )

     

    gjere en link med nedlastning av nødvenige programmer..

    Det står noen forslag til progamvare på den siden, men søk, les og/eller spør om dette i det rette forumet.

  10. Det med betaling og sånnt var nærmest ment som en spøk.

     

    Her ligger nettopp det jeg forsøkte å forklare:

    t er GUI, swing spørsmål som jeg kommer med..for jeg kjenner ikke til alle bibliotek etc etc...og det at jeg skal sette meg inni alt før jeg skl begynne å progge lærer jeg ingen ting av....

    Jeg snakker ikke her om detaljer som hva (alle) funksjoner og klasser og slikt heter; dette slår man opp. Tenker mer på konsepter, som f.eks. hva dette med layoutmanager går ut på og lignende. Generell forståelse ("hvorfor endrer knappene størrelse når jeg resizer vinduet?") gjør at du kan vite sånn sirka hvor problemet må sitte -- og slå opp og finne ut av det selv. Jeg tror dette vil gå kjappere for din del - altså enn å spørre på forumet (jeg sa ikke at du ikke skulle spørre); du tjener på det tilslutt. Når du ikke har generell kunskap vil du hele tiden måtte spørre neste gang du har et lignende problem - da du ikke kan orientere deg i det hele tatt om hvor problemet sansynligvis sitter.

     

    Du har sikkert vært borte i nybegynneren som spør om hver bidige ting - men ikke spør det viktigste spørsmålet: "hvordan finner jeg ut av slike ting selv?". "Lær en mann å fiske .. blabla. etc." Jeg vet /ikke/ om dette gjelder deg - da jeg ikke kjenner til om Java-APIet er organisert slik at det /går/ å finne et generellt mønster eller en resurs man kan følge/slå opp i (mer om dette under).

     

    ..er du generellt sett uavhengig av språk/fag uenig her har jeg ikke stort mer å si (Edit: da legger jeg opp, heh), men:

     

    Jeg går ikke inn på detaljer da jeg ikke vet så mye om dette - og ikke vet hva du vet eller ikke vet om dette; da hadde jeg i såfall svart i Java-tråden. Jeg tror kanskje Java-APIet er litt rotete lagt opp (min begrensede erfaring fra 1997-98) - så noe /måtte/ man faktisk bare pugge og spørre om - siden løsningene faller utenfor det som en normalt kan forvente seg etter å satt seg inn i de generelle konseptene -- det var i hvertfall slik sist jeg surret med dette, tror jeg. Jeg kan ikke avgjøre om dette fortsatt gjelder, eller om det gjelder i ditt tilfelle - da jeg ikke har nok kunnskap om APIet. Bare husk at i starten er alt som er nytt kaos. Er man lur prøver man å få et overblikk fra avstand før man setter i gang, slik fjellklatrene gjør, men igjen - om fjellet er "råttent" lenger oppe blir det en del uventede ting som dukker opp.

     

    Bare for å være helt sikker så "angriper" jeg ikke deg -- jeg angriper problemet ditt; og håper du finner en løsning på det.

     

    Jeg er litt nysjerrig på om du har bestemmt deg for å finne deg et nytt språk. I så fall har du fått mange anbefalinger her. Jeg ville i hvertfall gitt Python en god sjans om jeg var deg, da jeg har hørt mye godt om det - og det finnes mange biblioteker til det som gjør livet enklere.

     

    Edit:

    Common Lisp, som er mitt favorittspråk nå, er nydelig -- men det er litt begrenset med biblioteker til dette språket og dets implementasjoner (spesiellt de frie), så jeg "tør" ikke helt å anbefale det i denne sammenhengen.

  11. Jeg har ikke vært borte i Java siden 1997-8 - og kodet den gangen en chat-klient og en liten sak for å generere stolper (hvis du lurte - ikke store greiene, men jeg fikk det til). Det var som å bruke et API/bibliotek i et hvilket som helst annet språk, det tar tid før man lett finner frem i bibliotekene. Jeg driver med Common Lisp og C++ nå, og kan ikke lengre APIet til Sun utenat. (skal du ha meg til å kode Java igjen (eller i det hele tatt lage dette for deg) må du betale for det!)

     

    Jeg har bare "skumlest" over det du har postet, men jeg tror du bør ta to skritt tilbake .. sette ned tempoet og gå inn for å lære deg dette fra "grunnen av". Jeg har på feelingen at du er av typen som når du lakkerer bilen din hiver på alt for mye på en gang for å bli fort ferdig. Dette resulterer i at lakken renner og det blir stygt --- noe som igjen resulterer i at du må starte på nytt og kaster bort mye tid. Gjør det korrekt fra starten av, og vit (sett deg inn i) hva som er korrekt!

     

    Hvis du hører på det som foregår langt inne i hodet ditt vet du dette fra før av. (Edit: ikke nødvendigvis hva som er korrekt - men hva du må gjøre for å finne ut hva som er korrekt)

×
×
  • Opprett ny...