kirjasto-ongelma

Mulla on valmis sorsa game.cpp ja siihen liittyvä kirjasto gameapi.a
Mukana tulleen ohjeen mukaan sen pitäisi kääntyä seuraavalla komennolla:

g game.cpp -o game gameapi.a -lsocket -lnsl -I.

(Tuo viimeinen on iso i-kirjain ja pari muuta ovat pieniä L-kirjaimia. Ne jotka tekee näiden koneiden fontteja, niin ne voisi ampua kun I ja l ovat ihan saman näköisiä monessa koneessa.)

Ei kuitenkaan käänny, vaan saan seuraavan virheen:

/usr/bin/ld: cannot find -lsocket
collect2: ld:n paluuarvo oli 1

Missä vika?

gameapi.a löytyy hakemistosta "piste" eli tämä hakemisto ja löytyy myös /usr/bin/socket ja /usr/bin/ld
1291
Äänestä

Muut lukivat myös

Vastaukset 12

Vanhimmat

/usr/bin kansiossa ei kyllä ole Ubuntussa mitään socket kirjastoa, eikä pitäisikään olla.

Eli vikana on se, että tuollainen kirjasto puuttuu.

Äänestä

Luulen, että koko saatu paketti on muutenkin vajavainen. Pistin palautetta "sorsan" toimittajalle.

Äänestä
  • joo. Kyllä vähintään Makefile pitää olla.

    Äänestä

  • vwGwrB kirjoitti:

    joo. Kyllä vähintään Makefile pitää olla.

    Käännöksen voi tehdä myös ilman makefileä komentoriviltä.
    Se on ihan käyttökelpoinen tapa jos tiedostoja on vain muutama.
    Jos homma menee makefilen kautta, niin komento on "make" eikä "g ...."

    Äänestä

  • Linux Tumpleo kirjoitti:

    Käännöksen voi tehdä myös ilman makefileä komentoriviltä.
    Se on ihan käyttökelpoinen tapa jos tiedostoja on vain muutama.
    Jos homma menee makefilen kautta, niin komento on "make" eikä "g ...."

    Voihan sen tehdä mutta kun jakaa sorsia niin se on minimivaatimus. Omassa kääntelyssäkin kannatta opetella käyttämään makea.

    Äänestä

  • vwGwrB kirjoitti:

    Voihan sen tehdä mutta kun jakaa sorsia niin se on minimivaatimus. Omassa kääntelyssäkin kannatta opetella käyttämään makea.

    Älä opeta isääs naimaan. Olen tehnyt koodia ammatikseni yli 30 vuotta, joskin Linuxiin vasta muutaman vuoden. Olen tehnyt myös softaa, joka tekee automaattisesti makefilen järjestelmän määrittelytiedostoista.

    Käy lataamassa sivulta http://www.sonera.fi/yrityksille/tuotteet ja palvelut/liiketoiminta ja tukipalvelut/palveluntarjoajille/content gateway jompi kumpi noista Linux paketeista. Sen jälkeen voit valittaa Soneralle, että make on minimivaatimus.

    Tuo esimerkin "game" tai oikeammin "numbergame" on pelkkä demo jolla voi testailla SMS gatewayn ja siihen liitetyn sovellusohjelman toimintaa. Siinä pelataan numeropeliä SMS-viesteillä.

    Gatewayhyn on muitakin liityntärajapintoja kuin C kirjasto. Valitsin toisen vaihtoehdon.

    Äänestä

  • Linux Tumpelo kirjoitti:

    Älä opeta isääs naimaan. Olen tehnyt koodia ammatikseni yli 30 vuotta, joskin Linuxiin vasta muutaman vuoden. Olen tehnyt myös softaa, joka tekee automaattisesti makefilen järjestelmän määrittelytiedostoista.

    Käy lataamassa sivulta http://www.sonera.fi/yrityksille/tuotteet ja palvelut/liiketoiminta ja tukipalvelut/palveluntarjoajille/content gateway jompi kumpi noista Linux paketeista. Sen jälkeen voit valittaa Soneralle, että make on minimivaatimus.

    Tuo esimerkin "game" tai oikeammin "numbergame" on pelkkä demo jolla voi testailla SMS gatewayn ja siihen liitetyn sovellusohjelman toimintaa. Siinä pelataan numeropeliä SMS-viesteillä.

    Gatewayhyn on muitakin liityntärajapintoja kuin C kirjasto. Valitsin toisen vaihtoehdon.

    Linuxissa käännellään ohjelmia usein hyvinkin huonolla osaamisella. Siksi pitää olla aputyökaluja, joilla homma onnistuu automaattisesti. Siksi näitä aputyökaluja on olemassa ripakopallinen. Kokenut koodinvääntäjä tulee toimeen ilmankin mutta ensi kertaa kääntämisen kanssa tekemisiin joutuva on eri asia.

    Äänestä

  • vwGwrB kirjoitti:

    Linuxissa käännellään ohjelmia usein hyvinkin huonolla osaamisella. Siksi pitää olla aputyökaluja, joilla homma onnistuu automaattisesti. Siksi näitä aputyökaluja on olemassa ripakopallinen. Kokenut koodinvääntäjä tulee toimeen ilmankin mutta ensi kertaa kääntämisen kanssa tekemisiin joutuva on eri asia.

    Tarkoitatko, että jos kyseessä ei ole Linux, niin sitten ohjelmia käännellään hyvällä osaamisella?

    Eiköhän se osaaminen ole ihan henkilöstä kiinni eikä makella ole mitään tekemistä tämän asian kanssa. Make ei ole mikään aputyökalu, vaan käytännössä välttämätön, jos sovelluksessa on esim. satoja lähdekooditiedostoja. Make usein myös luodaan dynaamisesti kun systeemiä konfiguroidaan. Katso http://airs.com/ian/configure/

    Itseäni pidän jonkinlaisena tumpelona edelleenkin Linuxin kanssa, sillä en tiedä läheskään kaikkea siitä. En edes suurinta osaa.

    Äänestä

  • Linx Tumpelo kirjoitti:

    Tarkoitatko, että jos kyseessä ei ole Linux, niin sitten ohjelmia käännellään hyvällä osaamisella?

    Eiköhän se osaaminen ole ihan henkilöstä kiinni eikä makella ole mitään tekemistä tämän asian kanssa. Make ei ole mikään aputyökalu, vaan käytännössä välttämätön, jos sovelluksessa on esim. satoja lähdekooditiedostoja. Make usein myös luodaan dynaamisesti kun systeemiä konfiguroidaan. Katso http://airs.com/ian/configure/

    Itseäni pidän jonkinlaisena tumpelona edelleenkin Linuxin kanssa, sillä en tiedä läheskään kaikkea siitä. En edes suurinta osaa.

    Windowsissa on aina binäärit. Vain ammattilaiset ja alan harrastajat joutuvat kääntämisen kanssa tekemisiin.

    Linuxissa asia on monimutkaisempi. Mikäli jakelussa ei ole valmiita binäärejä joudutaan metsästämään netistä. Joskus sopivat binäärit löytyy, joskus ei. Usein valmiit käännökset ovat yhdelle tai muutamalle jakelulle. Muille pitää kääntää.

    Kokematonkin osaa asentaa tarvittavat kirjastot ja headerit. Samoin ./configure ; make ; make install onnistuu kunhan lukee ohjeet. Valitettavasti usein käy niin että omassa jakelussa on liian vanhoja kirjastoja. Silloin taviskäyttäjän henkseleistä loppuu pito ja asia pitää unohtaa ja odottaa uutta jakelupäivitystä.

    Linuxin käyttö on aluksi helpompaa kuin Windowsin kun ohjelmat saa rottaa naksauttamalla. Kun ohjelmaa ei löydy pakettivarastosta, alkavat todelliset ongelmat ja Windowsin käytettävyys näyttää aivan ylivoimaiselta.

    Äänestä

Käännöksen voi tehdä myös ilman makefileä komentoriviltä.
Se on ihan käyttökelpoinen tapa jos tiedostoja on vain muutama.

Äänestä
  • No ei ole. Kyllä se käännöksen automatisointi on ihan alkeisperusjuttu.

    Ja toisekseen, miksi ohjelmaa ei ole toimitettu valmiiksi käännettynä? Touhu tuntuu nyt jotenkin kummalliselta säädöltä.

    Äänestä

  • m-kar kirjoitti:

    No ei ole. Kyllä se käännöksen automatisointi on ihan alkeisperusjuttu.

    Ja toisekseen, miksi ohjelmaa ei ole toimitettu valmiiksi käännettynä? Touhu tuntuu nyt jotenkin kummalliselta säädöltä.

    "Kyllä se käännöksen automatisointi on ihan alkeisperusjuttu."

    Niin on paitsi jonkun yhden sorsakooditiedoston ja yhden libbin kokeiludemossa.

    "Ja toisekseen, miksi ohjelmaa ei ole toimitettu valmiiksi käännettynä? Touhu tuntuu nyt jotenkin kummalliselta säädöltä. "

    Gatewayta ei ole tarkoitus kääntää, vaan se oma sovellus joka käyttää sitä.

    Sovellus joka käyttää sitä, on tehtävä itse ja se toteuttaa ne toiminnot, joita itse tarvitsee. Ja tämä oma sovellus olisi helppo kirjoittaa käyttäen apuna valmiiksi annettua kirjastoa, jonka kautta gatewayhyn liitytään. Mukan on myös sovellusdemo, jolla pääsee liikkeelle. Tai pääsisi, jos sen saisi käännettyä. Lataa sovellus ja kokeile kääntää. Siinä ei ole kun yksi kirjasto ja yksi cpp-lähdekoodi. Tosin et pääse kokeilemaan sitä käytännössä, kun sulla ei ole käytössä gatewayta eikä lisenssitiedosta sille.

    Äänestä

Ketjusta on poistettu 1 sääntöjenvastainen viesti.

Kommentoi aloitusta


Linux Tumpelo kirjoitti:

Mulla on valmis sorsa game.cpp ja siihen liittyvä kirjasto gameapi.a
Mukana tulleen ohjeen mukaan sen pitäisi kääntyä seuraavalla komennolla:

g game.cpp -o game gameapi.a -lsocket -lnsl -I.

(Tuo viimeinen on iso i-kirjain ja pari muuta ovat pieniä L-kirjaimia. Ne jotka tekee näiden koneiden fontteja, niin ne voisi ampua kun I ja l ovat ihan saman näköisiä monessa koneessa.)

Ei kuitenkaan käänny, vaan saan seuraavan virheen:

/usr/bin/ld: cannot find -lsocket
collect2: ld:n paluuarvo oli 1

Missä vika?

gameapi.a löytyy hakemistosta "piste" eli tämä hakemisto ja löytyy myös /usr/bin/socket ja /usr/bin/ld

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu