THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: mitsos_dlx on March 24, 2008, 03:36:23 am



Title: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: mitsos_dlx on March 24, 2008, 03:36:23 am
Λοιπόν έχω αυτό το πρόβλημα!
Χρησιμοποιώ εδώ και λίγες μέρες το Microsoft Visual Studio, ωστόσο όλα τα αρχεία .exe που παράγονται στο τρέχουν μόνο σε εμένα.
Σε άλλους υπολογιστές με είτε xp είτε vista βγάζει ένα μήνυμα σφάλματος που λέει οτι οι ρυθμίσεις παραμέτρων είναι λάθος. Αυτό γίνεται είτε κάνοντας διπλό κλικ είτε ανοίγοντας τα από το cmd.
Εγώ έχω Vista στα 64-bit. Μήπως φτάιει που είναι 64bit και δημιουρείται πρόβλημα όταν τρέχουν στα 32?
Ωστόσο σε linux παίζουν μια χαρά.
Έχω μπερδευτεί και απόρώ γιατί στην ουσία πρόκειται για πάρα πολύ απλά παραδείγματα που τρέχουν σε περιβάλλον κονσόλας.
Κάνω μήπως κάτι λάθος στη μετάφραση?


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: marauber on March 24, 2008, 03:51:36 am
Αν δημιουργείς 64-bit κώδικα, λογικό δεν είναι να μην τρέχει σε 32-bit περιβάλλον; Το linux που το έτρεξες ήταν 64-bit και αυτό;


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: anonymous-root on March 24, 2008, 10:40:54 am
Εγώ έχω Vista στα 64-bit. Μήπως φτάιει που είναι 64bit και δημιουρείται πρόβλημα όταν τρέχουν στα 32?


Μόνος σου το απαντάς :D!

Αν στη μεταγλώτιση παράγεις .exe σε 64 bit λογικό ειναι να μην τρέχει σε 32 bit περιβάλλον.


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: DoomGuard on March 24, 2008, 12:30:43 pm
Αν στη μεταγλώτιση παράγεις .exe σε 64 bit λογικό ειναι να μην τρέχει σε 30 bit περιβάλλον.

Εφαγες 2 bit  :P


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: anonymous-root on March 24, 2008, 12:45:19 pm
Αν στη μεταγλώτιση παράγεις .exe σε 64 bit λογικό ειναι να μην τρέχει σε 30 bit περιβάλλον.

Εφαγες 2 bit  :P

:P


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: mitsos_dlx on March 24, 2008, 14:03:45 pm
To linux ήταν ενός φίλου μου. Θα τον ρωτήσω.
Αλλά σίγουρα φταίει αυτό? Γιατί έκανα το εξής:
Απεγκατέστησα το Visual Studio και οτιδήποτε άλλο βρήκα στα προγράμματα που είχε εγκατασταθεί μαζί του.
Τώρα λοιπόν δεν παίζουν ούτε σε εμένα!  >:(
Το μύνημα σφάλματος: "Application failed to start because it's side-by-side configuration is incorrect."
Αν ήταν τα bit το πρόβλημμα δεν θα έπρεπε σε εμένα να τρέχει?
Άρα να υποθέσω ότι τα exe που παράγονται δεν είναι εντελως ανεξάρτητα από τη γλώσσα...? :-\
Επίσης, υπάρχει κάποιος τρόπος exe για 32 bit? Κάποια ρύθμιση? Έψαξα αλλά δεν βρήκα κάτι σχετικο...


Title: deleted
Post by: BOBoMASTORAS on March 24, 2008, 14:08:57 pm
deleted


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: Aurelius on March 24, 2008, 14:21:36 pm
Με wine μηπως???


Title: deleted
Post by: BOBoMASTORAS on March 24, 2008, 14:45:57 pm
deleted


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: Turambar on March 24, 2008, 14:53:33 pm
Γενικότερα τα exe δεν είναι μεταφέρσιμα από υπολογιστή σε υπολογιστή.

Αν μεταφέρονται, είναι το εντυπωσιακό, όχι αν ΔΕΝ μεταφέρονται... :D


*.jar ρε και τα μυαλά μας πονάνε...

(χμ... ίσως δεν αφορά κανέναν στο τόπικ αυτό, το τελευταίο σχόλιο)


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: Aurelius on March 24, 2008, 15:03:48 pm
ε ναι ρε. Τι σχέση έχει όμως αυτό.... Δε τρέχουν σε linux στον emulator τρεχουν. Τεσπα.

Γκντουπ. Και ο emulator που τρεχει?


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: marauber on March 24, 2008, 17:24:41 pm
Γενικότερα τα exe δεν είναι μεταφέρσιμα από υπολογιστή σε υπολογιστή.

Αν μεταφέρονται, είναι το εντυπωσιακό, όχι αν ΔΕΝ μεταφέρονται... :D


*.jar ρε και τα μυαλά μας πονάνε...

(χμ... ίσως δεν αφορά κανέναν στο τόπικ αυτό, το τελευταίο σχόλιο)

Τα exe γενικά τρέχουν σε όλους τους υπολογιστές της ίδιας αρχιτεκτονικής. Τα προγράμματα που εγκαθιστάς τι νομίζεις ότι έχουν; exe αρχεία. Η εγκατάσταση δεν κάνει και compile τον κώδικα του προγράμματος. Το τελευταίο βέβαια υπάρχει σαν επιλογή για τους hardcore linux users :D.


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: Zarathoustra on March 24, 2008, 18:03:00 pm
Γενικότερα τα exe δεν είναι μεταφέρσιμα από υπολογιστή σε υπολογιστή.

Αν μεταφέρονται, είναι το εντυπωσιακό, όχι αν ΔΕΝ μεταφέρονται... :D


*.jar ρε και τα μυαλά μας πονάνε...

(χμ... ίσως δεν αφορά κανέναν στο τόπικ αυτό, το τελευταίο σχόλιο)
Τα exe γενικά τρέχουν σε όλους τους υπολογιστές της ίδιας αρχιτεκτονικής. Τα προγράμματα που εγκαθιστάς τι νομίζεις ότι έχουν; exe αρχεία. Η εγκατάσταση δεν κάνει και compile τον κώδικα του προγράμματος. Το τελευταίο βέβαια υπάρχει σαν επιλογή για τους hardcore linux users :D.
Φυσικά και δεν είναι ".exe" αρχεία!

tlon:/ # file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), stripped

tlon:/ # file /windows/C/Windows/notepad.exe
/windows/C/Windows/notepad.exe: MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit



Στο linux,τα προγράμματα έχουν την μορφή ELF(Executable and Linkable Format).Στα windows τα εκτελέσιμα δυαδικά αρχεία (.exe .dll) είναι τύπου PE(Portable Executable) (32 ή 64 bit για επεξεργαστές τύπου intel), διαφορετικά δηλαδή από τα ELF και φυσικά ασύμβατα,παρά το γεγονός πως προορίζονται τρέξουν σε επεξεργαστές ίδιας αρχιτεκτονικής.Ακόμη όμως και αν τα δύο λειτουργικά χρησιμοποιούσαν την ίδια μορφή εκτελέσιμων αρχείων, θα υπήρχε και πάλι ασυμβατότητα,δεδομένου πως οι βιβλιοθήκες,οι κλήσεις συστήματος,κ.λ.π είναι εντελώς διαφορετικές.

.jar και πάλι .jar λοιπόν!
(μαζί με το ογκωδέστατο-καταπληκτικό-πλήρως cross-platform api της java)


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: Verminoz on March 24, 2008, 18:48:30 pm
Μαγκιά είναι να κρατήσεις το portability στο μέγιστο δυνατό χωρίς Java. 8) Το jar είναι σιγουριά αλλά το πατάς σήμερα και εκτελείται αύριο... :P


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: mitsos_dlx on March 24, 2008, 23:54:54 pm
Το πρόβλημμα δεν είναι ούτε τα bits ούτε το λειτουργικό τελικά. Παίζουν οπουδήποτε αρκεί να υπάρχει μία τουλάχιστον εγκατεστημένη εφαρμογή για C++. Είτε αυτή είναι Visual Studio, είτε DEV, είτε g++ σε linux. Σε αυτό κατέληξαν οι δοκιμές που έκανα.
Γιατί όμως? Δηλαδή όταν χρησιμοποιώ κάποιες συναρτήσεις από τις βιβλιοθήκες, αυτές δεν περιλαμβάνονται στο exe μετά τη μετάφραση ? Κατά την εκτέλεση το πρόγραμμα τις διαβάζει από τα αρχεία εγκατάστασης?

Νομίζω πως άλλα μας είπαν...


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: anonymous-root on March 24, 2008, 23:57:36 pm
Μήπως χρησιμοποιείς εξτρά βιβλιοθήκες;


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: mitsos_dlx on March 25, 2008, 00:52:49 am
Όχι. Δε νομίζω. Αφού ούτε προγράμματα με μοναδικό include  το <iostream> δεν έπαιζαν.

Ωστόσο μόλις το έλυσα το πρόβλημα μου. ^peace^
Πέταξα μια για πάντα το Studio και έβαλα τον Bloodshed Dev-C++ 4.9.9.2. Όλα είναι μια χαρά τώρα. Τα exe που βγάζει τρέχουν παντού χωρίς να απαιτούν τίποτα παραπάνω από το ίδιο το exe αρχείο!

Άσε που είναι και πολύ πιο εύχρηστο το περιβάλλον, ειδικά για μάθηση. Ούτε βγάζει 100 αρχεία στο compiling. Μόνο 1 exe. Απλά και ωραία! ;) ;)

Τελικά η λύση ήταν προφανής: πετάμε οτιδήποτε σχετίζεται με τη Microsoft και επιλέγουμε εναλλακτικά προϊόντα... ;D ;D



Title: deleted
Post by: BOBoMASTORAS on March 26, 2008, 19:39:10 pm
deleted


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: λήθη on March 26, 2008, 20:38:17 pm
(http://www.zhongwen.com/t/10.gif)


Title: Re: Γιατί τα exe τρέχουν μόνο στο δικό μου pc?
Post by: Καμένος on March 27, 2008, 12:21:17 pm
Γιατί έτσι μας αρέσει.. Έχουμε και Ολυμπιακούς φέτος...