CxGo เป็นเครื่องมือสำหรับแปลซอร์สโค้ด C เป็น Go (aka transpiler, คอมไพเลอร์จากแหล่งที่มาสู่แหล่งที่มา)
ใช้ cc v3 สำหรับการประมวลผลล่วงหน้าและแยกวิเคราะห์ C (ไม่มีการพึ่งพา clang/gcc!) และเครื่องตรวจสอบประเภทแบบกำหนดเองและเลเยอร์การแปล AST เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดเท่าที่จะเป็นไปได้
ข้อกำหนดเพียงอย่างเดียวคือ: รหัส C ต้องคอมไพล์ ด้วย cxgo รวมถึงส่วนหัวด้วย
ต้องบอกว่า cxgo ใช้เทคนิคเล็กน้อยเพื่อทำให้กระบวนการนี้ง่ายขึ้น
TL; DR สำหรับเป้าหมายโครงการ:
ตรวจสอบคำถามที่พบบ่อยสำหรับคำถามทั่วไปเกี่ยวกับโครงการ
โครงการอยู่ ระหว่างการทดลอง ! อย่าพึ่งพามันในการผลิตและสภาพแวดล้อมที่ละเอียดอ่อนอื่น ๆ !
แม้ว่าจะได้รับการทดสอบในหลายโครงการสำเร็จแล้ว แต่อาจ เปลี่ยนพฤติกรรม ของโค้ดเนื่องจากข้อบกพร่องที่ยังไม่ทราบ
ผลการทดสอบคอมไพเลอร์:
โครงการที่ถ่ายโอน:
go install github.com/gotranspile/cxgo/cmd/cxgo@latestหรือดาวน์โหลดรุ่นล่าสุดจาก Github
วิธีที่เร็วที่สุดในการลองคือ:
cxgo file main.cสำหรับรายละเอียดเพิ่มเติม โปรดดูส่วนตัวอย่างของเรา
มันจะแนะนำคุณเกี่ยวกับรูปแบบการใช้งานขั้นพื้นฐานรวมถึงรูปแบบการใช้งานขั้นสูง (ในโครงการในโลกแห่งความเป็นจริง)
คุณสามารถตรวจสอบคำถามที่พบบ่อยได้หากคุณมีปัญหาใด ๆ
ปัจจุบันคุณสมบัติ C ต่อไปนี้ได้รับการยอมรับโดย cxgo แต่อาจมีการใช้งานบางส่วนหรือไม่ได้ใช้งานเลย:
static (#4)auto (#5)union กับโครงร่างข้อมูล C-เหมือนกัน (#7)packed (#8)asmcase ในสถานที่แปลก ๆ (#9)goto ไปต้องห้ามโดย Go (แต่มีวิธีแก้ไข ดู #10)setjmp (จะคอมไพล์ แต่ตื่นตระหนกที่รันไทม์)#ifdef หลายเส้นทางสำหรับ OS/envs ที่แตกต่างกัน เข้าร่วมชุมชนของเรา! เราอยากได้ยินกลับจากคุณ!
ดูการมีส่วนร่วม
เอ็มไอที