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++ ?