()
Newbie
Messaggi:
Iscritto:
|
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! 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. ? 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
|
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
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
|
|
()
Newbie
Messaggi:
Iscritto:
|
Infatti, forse alcuni compilatori quando creano l'eseguibile non mettono tutte le librerie di cui ha bisogno per funzionare
|
|
()
Newbie
Messaggi:
Iscritto:
|
Infatti, forse alcuni compilatori quando creano l'eseguibile non mettono tutte le librerie di cui ha bisogno per funzionare
|
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
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?
|
|
#superStandard (Ex-Member)
Newbie
Messaggi: 14
Iscritto: 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 ?
|
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
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 |
|
#superStandard (Ex-Member)
Newbie
Messaggi: 14
Iscritto: 04/07/2015
|
Mmh è stranissimo! chissà che puo' essere sto programma
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
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à. |
|