Estou aprendendo C (ainda muito iniciante) no Linux usando o compilador GCC. Percebi que algumas bibliotecas, como a biblioteca usada com o math.h
cabeçalho, precisam ser vinculadas manualmente quando incluídas. Estive vinculando nas bibliotecas usando vários sinalizadores do formulário -l[library-name]
, como -lm
na biblioteca matemática mencionada acima.
No entanto, depois de alternar da linha de comando e / ou Geany
para Code::Blocks
, notei que ele é Code::Blocks
usado g++
para compilar os programas em vez dos gcc
que eu estou acostumado (mesmo que o projeto seja definitivamente especificado como C). Além disso, Code::Blocks
não exige que as bibliotecas sejam vinculadas manualmente ao compilar - bibliotecas como a biblioteca de matemática apenas funcionam .
Eu tenho duas perguntas:
Em primeiro lugar, é "ruim" compilar programas C com o g++
compilador? Até o momento, parece funcionar, mas, afinal, C ++ não é C e tenho certeza de que o g++
compilador se destina a C ++.
Em segundo lugar, é o g++
compilador que está fazendo a ligação automática das bibliotecas Code::Blocks
?