Gcc là gì

     
gcc cùng g++ là trình điều khiển trình biên dịch của GNU Trình biên dịch Sở sưu tập (trước đây chỉ với GNU Trình biên dịch C ).

Bạn đang xem: Gcc là gì

Mặc dù chúng ta tự động xác định những suport như thế nào (cc1cc1plus ...) để Điện thoại tư vấn tùy trực thuộc vào một số loại tệp, trừ Khi được ghi đtrằn bằng -x language, bọn chúng có một số khác hoàn toàn.

Sự khác hoàn toàn đặc biệt quan trọng độc nhất có thể gồm vào khoác định của chúng là các tlỗi viện mà lại chúng liên kết tự động hóa.

Theo tư liệu trực con đường của GCC tùy lựa chọn liên kết và biện pháp g ++ được Call , g++ tương đương cùng với gcc -xc++ -lstdc++ -shared-libgcc (tùy chọn thứ nhất là trình biên dịch, nhì thiết bị nhị là tùy lựa chọn liên kết). Như vậy rất có thể được kiểm tra bằng cách chạy cả hai cùng với tùy lựa chọn -v (nó hiển thị những lệnh toolchain hỗ trợ vẫn chạy).


649
5 thg 10, 2008Mike F
GCC: GNU Bộ sưu tập trình biên dịch

Giới thiệu cho tất cả những ngôn từ không giống nhau được trình biên dịch GNU cung ứng.

gcc: GNU C Trình biên dịch<.__.> g ++: GNU Trình biên dịch C++

Sự khác hoàn toàn chính:

gcc đang biên dịch: * .c/*. cpp tập tin thứu tự là C cùng C++.g ++ sẽ biên dịch: * .c/*. cpp tệp nhưng mà toàn bộ chúng sẽ tiến hành xem là tệp C++.Ngoài ra nếu như khách hàng áp dụng g ++ nhằm links các tệp đối tượng người sử dụng, nó vẫn tự động liên kết trong các thư viện std C++ (gcc không có tác dụng điều này).gcc biên dịch tập tin C gồm ít macro được khẳng định trước.gcc biên dịch * .cpp cùng g ++ biên dịch * .c/*. Các tệp cpp tất cả thêm một vài macro.

Macro bổ sung khi biên dịch tệp * .cpp:

#define __GXX_WEAK__ 1#define __cplusplus 1#define __DEPRECATED 1#define __GNUG__ 4#define __EXCEPTIONS 1#define __private_extern__ extern
395
6 thg 10, 2008Martin York
Đối cùng với c ++, chúng ta nên sử dụng g ++.

Đó là và một trình biên dịch (ví dụ: bộ sưu tập trình biên dịch GNU). GCC hoặc G ++ chỉ việc chọn một giao diện người tiêu dùng khác cùng với những tùy chọn mặc định không giống nhau.

Tóm lại: nếu như bạn áp dụng g ++, frontkết thúc sẽ thông tin mang lại trình links rằng bạn cũng có thể ao ước links với các thỏng viện chuẩn C++. Giao diện gcc sẽ không còn làm điều đó (cũng rất có thể link với họ nếu khách hàng thừa qua những tùy lựa chọn loại lệnh mặt phải).


72
5 thg 10, 2008Nils Pipenbrinck
Sự biệt lập giữa g++ với gcc là gì?

gcc đã trở nên tân tiến xuất phát từ một ngôn từ tốt nhất "Trình biên dịch GNU C" thành một "Bộ sưu tập trình biên dịch GNU" nhiều ngữ điệu. Thuật ngữ "Trình biên dịch GNU C" đôi khi vẫn được thực hiện vào ngữ chình ảnh lập trình C.

g++ trình biên dịch C++ cho GNU Bộ sưu tập trình biên dịch. Giống như gnat là trình biên dịch Adomain authority cho gcc. coi Sử dụng GNU Sở sưu tập trình biên dịch (GCC)

Ví dụ: lệnh Ubuntu 16.04 với 18.04 man g++ trả về trang lí giải GCC(1).

Xem thêm:

Ubuntu 16.04 cùng 18.04 man gcc nói rằng ...

g++ chấp nhận số đông những tùy chọn y hệt như gcc

với đó là mang định ...

... thực hiện gcc ko thêm thư viện C++. g++ là công tác Call GCC cùng tự động chỉ định links cùng với thư viện C++. Nó coi những tệp .c, .h với .i là các tệp nguồn C++ cố kỉnh bởi vì các tệp nguồn C trừ Khi áp dụng -x. Chương thơm trình này cũng hữu ích khi biên dịch trước tệp title C bao gồm phần mở rộng .h để sử dụng trong số phần tổng đúng theo C++.

Tìm kiếm những trang man gcc nhằm tìm thông báo rõ ràng về những phương thơm sai tùy chọn của gcc với g++.

Nên sử dụng dòng làm sao nhằm phát triển c ++ chung?

Về khía cạnh nghệ thuật, hoàn toàn có thể áp dụng gcc hoặc g++ nhằm cải tiến và phát triển C++ bình thường với các thiết lập tùy lựa chọn áp dụng. Tuy nhiên, hành động mặc định g++ được liên kết thoải mái và tự nhiên với sự cách tân và phát triển C++.

Trang bé tín đồ Ubuntu 18.04 đang thêm đoạn sau:

Cách thông thường nhằm chạy GCC là chạy tệp tiến hành mang tên gcc hoặc machine-gcc Lúc biên dịch chéo hoặc machine-gcc-version nhằm chạy phiên bạn dạng GCC cụ thể. Khi các bạn biên dịch những chương trình C++, bạn nên gọi GCC là g++ thay thế.


24
Mặc dù các lệnh gcc cùng g ++ có tác dụng đều bài toán khôn xiết kiểu như nhau, g ++ được thiết kế với nhằm đổi mới lệnh các bạn hotline để biên dịch chương trình C++; Nó dự tính tự động làm cho điều chính xác.

Đằng sau hậu trường, bọn họ thực thụ là cùng một lịch trình. Theo tôi hiểu, cả hai ra quyết định yêu cầu biên dịch công tác thành C hay C++ dựa trên phần không ngừng mở rộng tên tệp. Cả nhị phần nhiều có công dụng link cùng với thư viện chuẩn chỉnh C++, nhưng lại chỉ tất cả g ++ làm điều đó theo mang định. Vì vậy, nếu khách hàng gồm một công tác được viết bởi C++ nhưng mà không cần thiết phải link cùng với thỏng viện chuẩn, gcc đã xảy ra để gia công điều đúng đắn; tuy nhiên sau đó, g ++ cũng vậy. Vì vậy, thực sự không có lý do gì nhằm không sử dụng g ++ nhằm phát triển C++ chung.


Tôi bước đầu quyên tâm mang đến vụ việc này cùng triển khai một số trong những thí điểm

Sau kia, tôi đã thử những hiểu biết với gcc.exe và g ++. Exe bên trên máy tính xách tay windows của tôi:

$ g++ --version | head -n1 g++.exe (gcc-4.6.3 release with patches ) 4.6.3$ gcc --version | head -n1gcc.exe pháo (gcc-4.6.3 release with patches ) 4.6.3Tôi đang nỗ lực biên dịch những tệp phân tích dễ dàng c89, c99 cùng c ++ 1998 cùng nó chuyển động tốt với tôi với những tiện ích không ngừng mở rộng đúng chuẩn tương xứng cùng với ngôn ngữ

gcc -std=c99 test_c99.cgcc -std=c89 test_c89.c g++ -std=c++98 test_cpp.cppgcc -std=c++98 test_cpp.cppNhưng khi tôi cầm cố chạy lao lý "bộ sưu tập trình biên dịch gnu" theo cách đó:

$ gcc -std=c++98 test_cpp.ccc1.exe: warning: command line option "-std=c++98" is valid for C++/ObjC++ but not for C Nhưng điều này vẫn hoạt động không có lỗi

$ gcc -x c++ -std=c++98 test_cpp.cVà vấn đề này cũng

$ g++ -std=c++0x test_cpp_11.cpp p.s. Kiểm tra hồ sơ

$ cát test_c89.c test_c99.c test_cpp.cpp// C89 compatible fileint main() int x<> = 0, 2; return sizeof(x);// C99 compatible fileint main() int x<> = <1>=2; return sizeof(x);// C++1998,2003 compatible fileclass X;int main() X x; return sizeof(x);// C++11#include enum class màu sắc : intred,green,blue; // scoped enumint main() std::vector a 1,2,3; // bracket initialization return 0; Kết quả:

Nếu nhìn vào cây quy trình thì có vẻ như gcc và g ++ là hỗ trợ cho các pháp luật khác, vào môi trường của tớ là: cc1plus.exe pháo, cc1.exe cộ, coll2.exe, as.exe pháo, ld. exe


Nhật cam kết GCC là 1 thuật ngữ viết tắt phổ biến cho GNU Bộ sưu tập trình biên dịch. Đây vừa là tên bình thường tuyệt nhất đến trình biên dịch, vừa là tên được sử dụng Lúc dìm rất mạnh vào câu hỏi biên dịch những công tác C (bởi tên viết tắt trước đấy là viết tắt của GNU GNU C Compiler.

Khi đề cùa đến quá trình biên dịch C++, người ta thường Gọi trình biên dịch là phiên phiên bản G ++. Vì chỉ gồm một trình biên dịch, nên cũng đúng mực Lúc Điện thoại tư vấn nó là GCC ", bất kỳ bối cảnh ngôn ngữ là gì; tuy vậy, thuật ngữ này sẽ hữu ích rộng lúc biên dịch chương trình C++.

quý khách hàng rất có thể bài viết liên quan tại phía trên .


Tôi đã thử nghiệm gcc và g ++ trong một khối hệ thống linux. Bằng cách sử dụng MAKEFILE, tôi có thể xác minh trình biên dịch được thực hiện bởi vì "GNU make". Tôi đã thử nghiệm tác dụng định vị "bộ nhớ lưu trữ động" của "C plus plus" bằng cách:

int main()int * myptr = new int;* myptr = 1;printf("myptr<0> is %i ",*myptr);return 0;Chỉ g ++ mới rất có thể biên dịch thành công xuất sắc trên laptop của mình trong những khi gcc sẽ báo lỗi

undefined reference lớn `operator new(unsigned long)"Vì vậy, tóm lại của riêng biệt tôi là gcc ko cung ứng tương đối đầy đủ "C plus plus". Có vẻ như lựa chọn g ++ cho những tệp mối cung cấp C++ là một sàng lọc tốt hơn.


Tmê mẩn chiếu không xác định mang đến vtable

Làm biện pháp như thế nào để mang omp.h vào OS X?

Liên kết với MSVC DLL tự MinGW

GCC: Sự khác biệt giữa -O3 với -Os

Cài đặt g ++ 7.0.1 trên Debian 8.7

Biên dịch một ứng dụng nhằm sử dụng vào môi trường thiên nhiên pđợi xạ cao

" data-cat="related-question">usr/bin/ld: cấp thiết tìm kiếm thấy -l

Cách auto tạo ra stacktrace lúc chương trình của tôi gặp mặt sự cố

C++ unordered_bản đồ sử dụng nhiều loại lớp tùy chỉnh cấu hình có tác dụng khóa

Lỗi CMake tại CMakeLists.txt: 30 (dự án): Không tìm kiếm thấy CMAKE_C_COMPILER

Làm gắng nào nhằm chúng ta đạt được đầu ra của trình biên dịch từ mối cung cấp C/C++ vào gcc?

Làm gắng làm sao nhằm tôi vắng lặng cực tốt một chú ý về những biến đổi không sử dụng?

Quá trình biên dịch thua cuộc với "di chuyển R_X86_64_32 đối với` .rodata.str1.8 "quan yếu được thực hiện khi tạo ra đối tượng người sử dụng share "

lỗi: ‘NULL không được knhì báo trong phạm vi này

Lỗi C++ "nullptr không được knhì báo vào phạm vi này" trong Eclipse IDE

lỗi biên dịch lịch trình openCV "libopencv_core.so.2.4: chẳng thể msinh sống tệp đối tượng sử dụng chung: Không có tệp hoặc thư mục như vậy" vào ubfox 12.04

Lỗi trình links GCC C++: Tham chiếu không khẳng định đến "vtable mang lại XXX", Tđê mê chiếu ko xác minh mang đến "ClassName :: ClassName ()"

Chuyển thay đổi một nhỏ trỏ thành một số nguyên

Cách tương thích để tạo unique_ptr đựng một mảng được phân bổ

không tìm thấy title khối hệ thống tập tin macOS Clang C++ 17



Chuyên mục: Đầu tư