Tôi đang học C (vẫn còn rất nhiều người mới bắt đầu) trên Linux bằng trình biên dịch GCC. Tôi đã nhận thấy rằng một số thư viện, chẳng hạn như thư viện được sử dụng với math.htiêu đề, cần phải được liên kết theo cách thủ công khi được bao gồm. Tôi đã được liên kết trong các thư viện bằng cách sử dụng các cờ khác nhau của biểu mẫu -l[library-name], chẳng hạn như -lmđối với thư viện toán học đã đề cập ở trên.
Tuy nhiên, sau khi chuyển từ dòng lệnh và / hoặc Geanysang Code::Blocks, tôi nhận thấy rằng Code::Blockssử dụng g++để biên dịch các chương trình thay vì gcctôi đã sử dụng (mặc dù dự án chắc chắn được chỉ định là C). Ngoài ra, Code::Blockskhông yêu cầu các thư viện phải được liên kết thủ công khi biên dịch - các thư viện như thư viện toán học chỉ hoạt động .
Tôi có hai câu hỏi:
Thứ nhất, có phải là "xấu" khi biên dịch chương trình C với g++trình biên dịch không? Cho đến nay nó có vẻ hoạt động, nhưng sau tất cả, C ++ không phải là C và tôi khá chắc chắn rằng g++trình biên dịch có nghĩa là cho C ++.
Thứ hai, nó có phải là g++trình biên dịch đang thực hiện liên kết tự động của các thư viện Code::Blockskhông?