Programm läuft nicht auf anderem PC



  • Hi,
    ich hab mir ein kleines Konsolen Programm geschrieben/compiliert um über dem Parallelport ein Relais zu steuer. Funktioniert auch alles wunderbar. Jetzt wollte ich das Programm auf einen anderen PC kopieren und dann dort ausführen. Aber dann sagt der mir "error while loading shared libraries: libstdc++.so.5"
    Muß ich dies Datei jetzt mit kopieren oder kann man die irgendwie direkt in das Programm mit eincompilieren?

    hier der Programmcode:

    #include <sys/perm.h>
    #include <iostream.h>
    #include <stdio.h>
    
     inline void outp( unsigned short port , unsigned char value )
    {
    __asm__ __volatile__ ( "outb %b0,%w1" : : "a" (value), "d" (port) );
    }
    
    inline unsigned char inp(unsigned short port)
    {
    unsigned char vv;
    __asm__ __volatile__ ( "inb %w1,%b0" : "=a" (vv) : "d" (port) );
    return vv;
    }
    
    void clrscr(void)
    {
     printf("\033[2J");
     printf("\033[0;0f");
     fflush(stdout);
    }
    
    int main() {
    
     ioperm(0x378 ,8,1);//Port freigeben
     int x,ba;
     ba=888;
     x=0;
     while(1)
     {
      outp(ba,x);
      clrscr();
      cout << "bit?:" << endl;
      cin >> x;
      if(x==999)break;
     }
     ioperm(0x378,8,1); // Ports wieder sperren
    }
    ;
    

    kurm_de



  • Du kannst die libstdc++ mit kopieren und damit in verschiedenen Versionen auf einem System haben. Besser ist es jedoch, das Programm auf dem anderen System neu zu kompilieren.

    Martin



  • ansonsten kannst du auch mit dem GCC-Flag -static die Librarys statisch linken. Die binarys werden dann aber extrem groß!



  • In dem Fall würde ich aber auch das iostream.h rausnehmen und auf das cin & cout verzichten.


Anmelden zum Antworten