คำถามติดแท็ก gcc

5
วิธีการเขียนคอมไพเลอร์ขั้นพื้นฐานมาก
คอมไพเลอร์ขั้นสูงเช่นgccรหัสคอมไพล์ลงในไฟล์ที่เครื่องสามารถอ่านได้ตามภาษาที่เขียนโค้ดนั้น (เช่น C, C ++ เป็นต้น) ในความเป็นจริงพวกเขาตีความความหมายของแต่ละรหัสตามห้องสมุดและฟังก์ชั่นของภาษาที่เกี่ยวข้อง ช่วยแก้ให้ด้วยนะถ้าฉันผิด. ฉันต้องการเข้าใจคอมไพเลอร์โดยการเขียนคอมไพเลอร์พื้นฐาน (อาจเป็น C) เพื่อคอมไพล์ไฟล์สแตติก (เช่น Hello World ในไฟล์ข้อความ) ฉันลองทำแบบฝึกหัดและหนังสือบางเล่ม แต่ทั้งหมดสำหรับกรณีจริง พวกเขาจัดการกับการรวบรวมรหัสแบบไดนามิกที่มีความหมายเชื่อมต่อกับภาษาที่เกี่ยวข้อง ฉันจะเขียนคอมไพเลอร์พื้นฐานเพื่อแปลงข้อความคงเป็นไฟล์ที่เครื่องอ่านได้อย่างไร ขั้นตอนต่อไปจะแนะนำตัวแปรในคอมไพเลอร์ ลองนึกภาพว่าเราต้องการเขียนคอมไพเลอร์ที่รวบรวมเฉพาะบางฟังก์ชั่นของภาษา ขอแนะนำบทเรียนและแหล่งข้อมูลเชิงปฏิบัติที่ได้รับความนิยมอย่างสูง :-)
214 c  compiler  compilation  gcc 

9
โปรแกรมเมอร์สามเณรผิดหวังเพราะไม่มีคำศัพท์ในคอมไพเลอร์ผิดพลาด
เพื่อนในครอบครัวของฉันขอความช่วยเหลือจากเขาเมื่อเขาเรียนรู้การเขียนโปรแกรม (ในภาษา C) ในขณะที่เรากำลังพูดถึงเขาแสดงความไม่พอใจเกี่ยวกับการมีเวลาที่ยากลำบากในการทำความเข้าใจข้อความแสดงข้อผิดพลาดที่คอมไพเลอร์ของเขา (GCC) ให้เขาเมื่อเขาทำผิด เขาไม่เข้าใจคำศัพท์ทั้งหมดที่ใช้และบางครั้งเป็นการรวมกันของพวกเขาซึ่งอยู่นอกเหนือความเข้าใจของเขา เขาถามฉันว่า "ทำไมคอมไพเลอร์ของเอกสารถึงไม่รวมคำอธิบายข้อความผิดพลาดอีกต่อไปแล้ว?" - และฉันไม่มีคำตอบที่ดีสำหรับเขา ฉันเอง - ในฐานะโปรแกรมเมอร์ที่มีประสบการณ์มาก - ไม่ค่อยเกิดขึ้นในสถานการณ์นี้ แต่สิ่งที่เกิดขึ้นได้ยากเหล่านั้นเกิดขึ้น - ข้อความแสดงข้อผิดพลาดแปลกใหม่ที่ฉันไม่เคยพบมาก่อน ฉันจัดการโดยค้นหาข้อความแสดงข้อผิดพลาดในเครื่องมือค้นหา แต่ดูเหมือนจะไม่ได้ผลสำหรับเขา - โดยเฉพาะอย่างยิ่งเนื่องจากข้อผิดพลาดที่เขาพบพบบ่อยและเกิดขึ้นในหลายกรณีที่แตกต่างกันซึ่งเขามีปัญหาเกี่ยวกับเขา ด้วยตัวเอง ดังนั้นโปรแกรมเมอร์มือใหม่ควรเข้าหาความท้าทายในการทำความเข้าใจข้อความแสดงข้อผิดพลาดของคอมไพเลอร์อย่างไร? โดยเฉพาะกับการรวมกันของ C และ GCC?

3
GCC กำลังจะตายโดยไม่มีเธรดรองรับบน Windows หรือไม่ [ปิด]
ฉันต้องการความคิดเห็น GCC เป็นคอมไพเลอร์ที่ดีอยู่เสมอ ฉันเพิ่งพบว่าบน Windows GCC ไม่มีstd::threadการสนับสนุนบังคับให้ผู้ใช้ Windows ใช้คอมไพเลอร์อื่นเพราะคุณสมบัติที่น่าตื่นเต้นที่สุดยังคงหายไป แต่ทำไม GCC ถึงยังไม่มีการรองรับเธรดใน Windows ปัญหาใบอนุญาต? ABI เข้ากันไม่ได้? (มีห้องสมุดข้ามแพลตฟอร์มหลายแห่งที่ใช้มัลติเธรด: บูสต์, POCO, SDL, wxwidgets เป็นต้นมันไม่ง่ายเลยที่จะใช้ที่มีอยู่แล้วและ MIT / libpng ที่ได้รับอนุญาตรหัสเพื่อให้พอดีกับหลุมนี้แทนที่จะส่ง GCC ไม่มีการสนับสนุนเธรด?) เมื่อเร็ว ๆ นี้เมื่อดูการเปรียบเทียบคอมไพเลอร์ GCC มีการรองรับคุณสมบัติ C ++ 11 ที่กว้างที่สุดในส่วนที่เกี่ยวกับคอมไพเลอร์อื่น ๆ ยกเว้นความจริงที่ว่าใน Windows นี้ไม่เป็นความจริงเพราะเรายังขาดอะตอมมิก mutexes และเธรด: ฉันต้องการทราบเพิ่มเติมเกี่ยวกับหัวข้อนี้ แต่สิ่งเดียวที่ฉันสามารถหาได้คือคนที่ขอความช่วยเหลือเพราะ: "thread" ไม่มีอยู่ใน std namespace ดูการติดตามตั๋วและการสนทนาทางไปรษณีย์ของ …

4
GCC vs clang / LLVM - ข้อดีและข้อเสียของแต่ละ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ข้อดีและข้อเสียของ GCC vs clang / LLVM คืออะไร
20 compiler  clang  gcc  llvm 

4
จะใช้แฟล็ก -pedantic ใน g ++ หรือไม่?
ฉันกำลังเรียนรู้ C ++ และฉันใช้ g ++ บน Linux เพื่อฝึกฝน ฉันต้องการทราบว่าผู้ที่ทำงานเป็นโปรแกรมเมอร์ใช้ g ++ -pedantic flag และยังมีความสำคัญในโลกแห่งความเป็นจริงหรือไม่ แล้วคอมไพเลอร์ตัวอื่น ๆ พวกเขาอนุญาตแบบนี้หรือไม่? สิ่งนี้กลายเป็นมาตรฐานตามความเป็นจริงหรือไม่? ฉันสนใจเพราะฉันกำลังอ่าน C ++ Primer ซึ่งผู้เขียนชี้ให้เห็นว่าการใช้นิพจน์ที่ไม่ใช่ const เป็นมิติในการกำหนดอาเรย์และ g ++ โดยค่าเริ่มต้นอนุญาตให้ทำได้ และอาจมีสิ่งอื่นที่ฉันไม่รู้
16 c++  gcc 

2
ทำไม glibc จึงถูกดูแลแยกจาก GCC
GCC เป็นคอมไพเลอร์ C Glibc เป็นไลบรารี C อย่างไรก็ตามมันเป็นความจำเป็นอย่างยิ่งสำหรับคอมไพเลอร์และไลบรารีมาตรฐานที่รวมเข้าด้วยกันเป็นการนำ C ไปใช้หรือไม่? ยกตัวอย่างเช่นห้องสมุด C มี ABI และคอมไพเลอร์ที่เฉพาะเจาะจงสิ่งที่ชอบ<limits.h>, <stdint.h>เป็นต้นซึ่งแตกต่างระหว่างคอมไพเลอร์และ API และรายละเอียดเช่น "วิธีการเรียกใช้ฟังก์ชั่นหลัก" นั้นยังขึ้นอยู่กับคอมไพเลอร์libc.soด้วย ตัวอย่างเช่นถ้าฉันเปลี่ยนคอมไพเลอร์ให้ทำงานกับ ABI อื่นเช่นใช้intกับ 8 ไบต์ไลบรารี C จะไม่ทำงานอีกต่อไปเพราะสิ่งที่อยู่ใน<limits.h>นั้นจะผิด
13 c  gcc 

5
มีวิธีการใช้ gcc เป็นห้องสมุดหรือไม่?
ทุกคนรู้วิธีแก้ปัญหาที่ใช้งานได้เช่นนี้: #include <stdio.h> #include <gcc.h> /* This .h is what I'm looking for. */ int main (void) { /* variables declaration (...) */ /* The following line is supposed to be equivalent to: * $ gcc main.c -o main */ results = gcc_compile_and_link("main.c", "main"); /* Now I want to use …
10 c++  c  gcc 

2
ไม่มีปัญหาเรื่องไก่และไข่ตั้งแต่ GCC เขียนใน C ++ เอง?
ตั้งแต่ 4.8 รีลีส C ++ คอมไพเลอร์ GCC (ส่วน G ++) จะถูกเขียนไม่ได้อยู่ใน C อีกต่อไป แต่ใน C ++ ฉันมีคำถามสมมุติในเรื่องนี้ ฉันสงสัยว่าจะรวบรวมรหัส C ++ ของ GCC บนแพลตฟอร์มใหม่ที่ไม่มีคอมไพเลอร์ C ++ ได้อย่างไร แน่นอนคุณสามารถใช้ไบนารีที่สร้างไว้ล่วงหน้าซึ่งรวบรวมไว้ในเครื่องอื่น ๆ หรือคุณสามารถใช้ GCC รุ่นเก่ากว่าที่เขียนใน C และคอมไพล์เวอร์ชันปัจจุบันด้วย อย่างไรก็ตามหากไม่มีไบนารีที่สร้างไว้ล่วงหน้าแล้วและเป็นเวอร์ชั่นใหม่ล่าสุดคุณติดอยู่ใช่ไหม? ถ้าไม่มีความหมายอื่น ๆ ในสถานการณ์นี้ที่เกิดจากการสลับจาก C เป็น C ++ ของโครงการ GCC หรือไม่
10 c++  compiler  gcc 

1
ทำไม GCC ใช้ไวยากรณ์ AT&T เป็นค่าเริ่มต้น
ฉันคิดว่าชื่อกล่าวมันทั้งหมด :) มีเหตุผลในทางปฏิบัติที่เฉพาะเจาะจงหรือไม่ (ฉันคิดว่าส่วนใหญ่เป็นประวัติศาสตร์ แต่ฉันไม่สามารถหาได้ด้วยตนเอง) ทำไม GCC ใช้ไวยากรณ์ AT & T / GAS หมายเหตุ: ฉันรู้ว่านี่เป็นเพียงค่าเริ่มต้นและคุณสามารถเปลี่ยนได้ หมายเหตุ 2: ฉันพบว่า "ไวยากรณ์ของ Intel" สามารถอ่านได้มากขึ้นด้วยเหตุนี้มันจึงทำให้ฉันประหลาดใจ
9 history  assembly  gcc 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.