Creazione progetto in c++ senza IDE

Peri

Nuovo Utente
82
3
Salve gente

Dovrei creare un progetto in C++ che sia scaricabile anche da altre persone. Ma mi è sorto un dubbio per cui mi riferisco a voi.

Al momento i progetti in C++ che ho scritto li ho fatti con un IDE (nel caso mio Code::Blocks) e ho due modi per avviare il progetto: o avvio il linker o apro il progetto nell'IDE.
Solo che, giustamente, non posso optare per la seconda ipotesi, perché dovrei richiedere che l'utente scarichi anche l'IDE.
Lasciare solo l'eseguibile mi sembra insufficiente perché cambiando dispositivo non so se continua a funzionare.
Visto che all'utente non interessa il codice sorgente, ma solo il programma, c'è un modo semplice per farglielo usare?
Magari lascio un file txt con le istruzioni ( il tipico README ), basta che non siano troppo elaborate, perché gli utenti probabilmente non si intenderanno molto di computer (o almeno probabilmente ne capiranno meno di me che ne so poco ?).
Se le istruzioni cambiano in base al sistema operativo allora sarebbe meglio scrivermi le varie opzioni, magari per i tipici Windows ( 8, 10 o 11 ), Linux e macOs (così copro una buona gamma di utenti)
Vorrei evitare di far installare il compilatore, ma se ciò risulta impossibile allora avrei bisogno anche le istruzioni su come si fa.

Probabilmente qualcosa potrei non conoscerla, ma il progetto serve anche a questo, per farmi imparare queste cose.

Grazie mille!
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Quindi tu vuoi solo distribuire il file eseguibile di fatto, giusto? Dove si trova il progetto in questo momento?

Normalmente se si ha un sito lo si fa scaricare da li. Ovviamente si scarica solo il file eseguibile, magari in base al sistema operativo. Un'altra alternativa è pubblicare tutto su github, volendo anche con una sottocartella che contenga l'eseguibile. Non so CodeBlocks che utilizza come compilatore e per gestire il build, ma con uno script usando ad esempio Make uno che vuole compilarlo non avrà grandi problemi (specie sotto Linux, dove di solito si è più smanettoni).

Se non hai uno spazio tuo, puoi anche upparlo su qualche hosting e dare/pubblicare direttamente l'url. Dipende di che progetto si tratta.

Di sicuro non puoi chiedere all'utente di scaricare un compilatore o un IDE+compilatore per compilarselo, questo è sicuro.
 
  • Mi piace
Reazioni: Andretti60 e Peri

Peri

Nuovo Utente
82
3
Quindi tu vuoi solo distribuire il file eseguibile di fatto, giusto? Dove si trova il progetto in questo momento?

Normalmente se si ha un sito lo si fa scaricare da li. Ovviamente si scarica solo il file eseguibile, magari in base al sistema operativo. Un'altra alternativa è pubblicare tutto su github, volendo anche con una sottocartella che contenga l'eseguibile. Non so CodeBlocks che utilizza come compilatore e per gestire il build, ma con uno script usando ad esempio Make uno che vuole compilarlo non avrà grandi problemi (specie sotto Linux, dove di solito si è più smanettoni).

Se non hai uno spazio tuo, puoi anche upparlo su qualche hosting e dare/pubblicare direttamente l'url. Dipende di che progetto si tratta.

Di sicuro non puoi chiedere all'utente di scaricare un compilatore o un IDE+compilatore per compilarselo, questo è sicuro.
Eh si immaginavo che fosse un po' rude lasciare il lavoro all'utente. Comunque è un progettino che esamina dei file che l'utente passa in una cartella e da lì mostra i risultati delle analisi, roba che richiede più dedizione che conoscenza informatica, ogni tanto manda dei messaggi al sistema operativo per comunicare con gnuplot (quello necessariamente dovrà essere installato), so come si fa con Windows e con Linux, per macOs mi informerò... e probabilmente questa rimane la cosa più complicata che fa il codice.
Ad ogni modo non pensavo che fosse sufficiente l'eseguibile, a questo punto mi basta crearne uno su Windows, uno su Linux (che in un attimo lo faccio dal mio pc) e poi boh... per macOs chiedo a una mia amica che so che ha un mac. Dopodiché pubblico questi 3.
Così funziona? ho capito bene?
 
  • Mi piace
Reazioni: Andretti60

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Si esattamente, è così. Chiaramente se usi librerie esterne dovrai distribuire anche quelle assieme all'eseguibile.
Per farti un esempio, quando distribuisco qualcosa, alle volte pubblico anche il file binario. Guarda questo mio progetto: https://github.com/DispatchCode/T3C/tree/master/bin
Nel mio caso quelle sono le librerie che uso per farlo funzionare (è un'applicazione che utilizza SDL2 però, è grafica.
 
  • Mi piace
Reazioni: Andretti60

Andretti60

Utente Èlite
6,440
5,091
Beh, dipende chi siano gli “utenti”. Se sono per esempio studenti informatici gli si passa il codice assieme alla istruzione “Use the Code, Luke” (non scherzo).
Altrimenti, come dice @DispatchCode, si fornisce un eseguibile per tutti i sistemi operativi che vuoi supportare, il che moltiplica il lavoro per te ovviamente in quanto occorre dividere il codice in una parte comune e una dipendente dal sistema operativo, in modo da modificare solo la seconda. Di solito i linguaggi di programmazione preferiti in questo caso sono C, C++ e Java (per piccoli progetti va bene anche Python), oppure si usa un compilatore (in genere un IDE) che possa cross-compilare il progetto per diversi sistemi operativi. Le opzioni sono diverse, difficili dare consigli, dipende da caso a caso.

Insomma, non molto dissimile proprio da gnuplot (fui uno dei primi a usarlo in una tesi universitaria, sono secoli che non lo uso). È scritto in C (fu scritto negli anni ottanta) ed esistono vari eseguibili per diversi sistemi operativi.
 
  • Mi piace
Reazioni: Peri

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili