Sto imparando C (ancora molto principiante) su Linux usando il compilatore GCC. Ho notato che alcune librerie, come la libreria utilizzata con l'intestazione math.h
, devono essere collegate manualmente quando incluse. Sono stato collegato alle librerie utilizzando vari flag della forma -l[library-name]
, ad esempio -lm
per la libreria matematica sopra menzionata.
Tuttavia, dopo aver passato dalla riga di comando e / o% da% di% a% di% di co_de, ho notato che Geany
usa Code::Blocks
per compilare i programmi invece di Code::Blocks
a cui sono abituato (anche se il progetto è sicuramente specificato come C). Inoltre, g++
non richiede che le librerie vengano collegate manualmente durante la compilazione - librerie come la libreria matematica funzionano .
Ho due domande:
In primo luogo, è "cattivo" compilare programmi C con il compilatore gcc
? Finora sembra funzionare, ma dopo tutto, C ++ non è C e sono abbastanza sicuro che il compilatore Code::Blocks
è pensato per C ++.
In secondo luogo, è il compilatore g++
che sta eseguendo il collegamento automatico delle librerie in g++
?