Linux Software kompilieren

Dieses Thema im Forum "Hardware" wurde erstellt von H2OKOPF, 5. Juli 2003.

  1. H2OKOPF

    H2OKOPF New Member

    Hallo,

    hab im Netz ein kleines Linux Programmchen gefunden (Befehlszeile, keine GUI) das ich gerne auf dem Mac kompiliert hätte.
    Hab die Developer Tools installiert und nun wollte das Programm per "make" Befehl für OS X kompilieren.
    Hier die Fehlermeldung die das Terminal daraufhin ausspuckt:

    g++ -g mcrec.cpp Remuxer.cpp SigHandler.cpp \
    StopWatch.cpp -o mcrec -lpthread -Wall
    In file included from mcrec.cpp:28:
    SigHandler.h:95: `_NSIG' was not declared in this scope
    SigHandler.h:98: `_NSIG' was not declared in this scope
    SigHandler.h: In static member function `static void
    SigFlags::generic_handler(int)':
    SigHandler.h:103: `_NSIG' undeclared (first use this function)
    SigHandler.h:103: (Each undeclared identifier is reported only once for each
    function it appears in.)
    SigHandler.h:104: `flags' undeclared (first use this function)
    mcrec.cpp:38:22: sys/poll.h: No such file or directory
    mcrec.cpp: In function `void* AVReadThreadDBox2(void*)':
    mcrec.cpp:321: `MCL_CURRENT' undeclared (first use this function)
    mcrec.cpp:321: `MCL_FUTURE' undeclared (first use this function)
    mcrec.cpp:321: `mlockall' undeclared (first use this function)
    mcrec.cpp:366: storage size of `pollfds' isn't known
    mcrec.cpp:371: `POLLIN' undeclared (first use this function)
    mcrec.cpp:401: `::poll' undeclared (first use here)
    mcrec.cpp: In function `int main(int, char**)':
    mcrec.cpp:1631: `handlers' is not a member of type `SigFlags'
    mcrec.cpp:1635: `handlers' is not a member of type `SigFlags'
    mcrec.cpp:1649: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1649: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1651: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1652: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1703: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1703: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1705: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1706: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1713: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1714: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1906: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1907: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1918: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1918: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1921: `flags' is not a member of type `SigFlags'
    mcrec.cpp:1922: `flags' is not a member of type `SigFlags'
    In file included from SigHandler.cpp:6:
    SigHandler.h:95: `_NSIG' was not declared in this scope
    SigHandler.h:98: `_NSIG' was not declared in this scope
    SigHandler.h: In static member function `static void
    SigFlags::generic_handler(int)':
    SigHandler.h:103: `_NSIG' undeclared (first use this function)
    SigHandler.h:103: (Each undeclared identifier is reported only once for each
    function it appears in.)
    SigHandler.h:104: `flags' undeclared (first use this function)
    SigHandler.cpp: At global scope:
    SigHandler.cpp:23: cannot declare member function `SigHandler::SigHandler'
    within `SigFlags'
    SigHandler.cpp:23: syntax error before `{' token
    SigHandler.cpp:33: cannot declare member function `SigHandler::activate' within
    `SigFlags'
    SigHandler.cpp:33: syntax error before `{' token
    SigHandler.cpp:42: warning: ISO C++ forbids declaration of `activated' with no
    type
    SigHandler.cpp:43: parse error before `return'
    SigHandler.cpp:48: cannot declare member function `SigHandler::deactivate'
    within `SigFlags'
    SigHandler.cpp:48: syntax error before `{' token
    SigHandler.cpp:57: warning: ISO C++ forbids declaration of `activated' with no
    type
    SigHandler.cpp:57: redefinition of `int activated'
    SigHandler.cpp:42: `int activated' previously defined here
    SigHandler.cpp:58: parse error before `return'
    SigHandler.cpp: In constructor `SigFlags::SigFlags()':
    SigHandler.cpp:70: `handlers' undeclared (first use this function)
    make: *** [mcrec] Error 1



    Kann mir jemand einen Tip geben was zu tun wäre?
     
  2. zwoelf11_

    zwoelf11_ New Member

    es muss nicht unbedingt 1:1 kompilierbar sein, vllt fehlen teile oder du musst dinge per hand anpassen.

    hast du vor "make" auch "./configure" gemacht?
    (insofern configure da ist...)
     
  3. H2OKOPF

    H2OKOPF New Member

    Das mit configure war mir noch bis vor kurzem neu (hab in c´t gelesen das da das makefile neu erstellt wird!?). Leider ist keine Datei im Source Ordner die configure.irgendwas heisst.

    Auch das editieren per Hand scheidet bei mir wohl aus da ich so gut wie keine Erfahrung mit Programmieren hab.

    Trotzdem Danke!
     
  4. zwoelf11_

    zwoelf11_ New Member

    gib mal link zum programm/sources, dann guggsch mal :)

    "configure" ist üblicherweise ein skript, welches deinen rechner prüft und entsprechend das makefile anpasst.
     
  5. H2OKOPF

    H2OKOPF New Member

    Es kommt immer die Meldung "Command not found"
    Schätze dass es daran liegt weil kein configure File vorhanden ist! Hier eine Liste der Dateien die in der Source liegen:

    mcrec.rc
    mcrec.progs
    mcrec.pids
    mcrec.cpp
    Makefile
    StopWatch.h
    StopWatch.cpp
    SigHandler.h
    SigHandler.cpp
    Remuxer.h
    Remuxer.cpp

    Wenn du Bock hast dir das Programm mal anzusehen:
    http://mash.nwy.at/download/mcrec-0.16.tar.gz
     
  6. zwoelf11_

    zwoelf11_ New Member

    sorry das ich solang gebraucht hab, habs jetz erst gefunden.

    1. sollte __CYGWIN__ definiert sein, dann gehts schon fast
    (In src/Makefile: "GCC=g++ -g" ändern in
    "GCC=g++ -g -D__CYGWIN__")

    2. der braucht eine routine names "poll", die scheinbar bei den meissten OS standartmässig dabei ist, und auch nicht gross aufregend ist. ich hab aber jetz keine ahnung wo man die herbekommt. wenn mir was einfällt, sag ich bescheid =)
     

Diese Seite empfehlen