Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Perchè gli eseguibili in C++ non funzionano su altri PC ?
Forum - C/C++ - Perchè gli eseguibili in C++ non funzionano su altri PC ?

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Buonasera programmatori, ho una perplessità, mi sono ritrovato a scrivere un piccolo applicativo in C++, uso MinGW come compilatore (che è quello che uso all'università), e quando ho passato l'eseguibile sul pc della persona che me lo aveva richesto, il programma non funzionava, diceva che gli mancava la libreria "collect.exe" . Ho rifatto lo stesso programma in C, con lo stesso compilatore e il programma PARTE!:hail: Da cosa dipende questa cosa ? Il C++ funziona solo per l'architettura su cui è compilato ? E ci sta un modo per far partire i programmi su qualunque calcolatore. ?:hail: o mi sfugge qualche cosa ? ho cercato notizie in merito e ho trovato risultati in merito a librerie statiche e dinamiche ma non erano molto chiare le guide XD

Grazie in anticipo, questo dubbio mi assale da un pò


#superStandard

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 22:03
Venerdì, 03/07/2015
No, un compilatore è un compilatore tu puoi compilare un programma per Linux si Windows, ma quello in cui ti sei imbattuto è un problema che non so spiegarmi, ma non dipende dal linguaggio in se, dipende da come è stato compilato

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:13
Venerdì, 03/07/2015
Infatti, forse alcuni compilatori quando creano l'eseguibile  non mettono tutte le librerie di cui ha bisogno per funzionare :_doubt:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:14
Venerdì, 03/07/2015
Infatti, forse alcuni compilatori quando creano l'eseguibile  non mettono tutte le librerie di cui ha bisogno per funzionare :_doubt:

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 23:59
Venerdì, 03/07/2015
Non è questo, una libreria è del codice già compilato, e pronto per essere usato in altre applicazioni.
Le librerie sono di due tipi: statiche e dinamiche. Le librerie statiche sono librerie che vengono aggiunte all'eseguibile, le librerie dinamiche sono librerie che risiedono in un file separato da quello dell'eseguibile.

Le librerie non vengono aggiunte a caso, ma vengono aggiunte su richiesta del programmatore in fase di compilazione.
Questo significa che hai involontariamente dello al compilatore di aggiungere una specifica libreria. Posso sapere come hai compilato il sorgente?

PM Quote
Avatar
#superStandard (Ex-Member)
Newbie


Messaggi: 14
Iscritto: 04/07/2015

Segnala al moderatore
Postato alle 12:45
Sabato, 04/07/2015
Grazie per spiegazione sulle librerie :)
Io uso come compilatore MinGW, il comando di compilazione sulla console è g++ "file.cpp"
Forse devo settare qualche impostazione nel compilatore ?:-?

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 13:20
Sabato, 04/07/2015
Prova, invece di usare mingw, ad usare tdm-gcc e a compilare con:

g++ -c main.cpp
g++ main.o -o Programma

Comunque collect.exe non è una libreria, è un programma/tool della microsoft. Quindi il problema non è il tuo programma.

Ultima modifica effettuata da TheDarkJuster il 04/07/2015 alle 13:22
PM Quote
Avatar
#superStandard (Ex-Member)
Newbie


Messaggi: 14
Iscritto: 04/07/2015

Segnala al moderatore
Postato alle 15:45
Sabato, 04/07/2015
Mmh è stranissimo! chissà che puo' essere sto programma :hail::hail:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:52
Sabato, 04/07/2015
Se tu postassi più informazioni

1) del sistema operativo

2) dell'IDE / compilatore

3) messaggio d'errore esatto

si potrebbe dire qualcosa in più, altrimenti rimaniamo nel vago ...

Io penso che la segnalazione riguardi collect2.exe e non collect.exe.
E' una parte del compilatore mingw e non è la parte che manca ma l'eseguibile che riporta l'errore.
Molto probabilmente il messaggio completo indica la libreria che effettivamente manca

Ultima modifica effettuata da nessuno il 04/07/2015 alle 18:04


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo