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.h
tiê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 Geany
sang Code::Blocks
, tôi nhận thấy rằng Code::Blocks
sử dụng g++
để biên dịch các chương trình thay vì gcc
tôi đã sử dụng (mặc dù dự án chắc chắn được chỉ định là C). Ngoài ra, Code::Blocks
khô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::Blocks
không?