ID บทความ: 000077602 ประเภทข้อมูล: ข้อมูลผลิตภัณฑ์และเอกสารประกอบ การตรวจสอบครั้งล่าสุด: 11/09/2012

ฉันจะรวมไฟล์ C ในโครงการซอฟต์แวร์ Nios II C ของฉันได้อย่างไร

สิ่งแวดล้อม

  • โปรเซสเซอร์ Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    C2H ไม่รองรับการสร้างตัวเร่งความเร็วจากไฟล์ C 

     

    มีวิธีแก้ปัญหาที่จะช่วยให้คุณเรียกตัวเร่งความเร็วของคุณจากโปรแกรม C ซึ่งเกี่ยวข้องกับการย้ายฟังก์ชันที่คุณต้องการเร่งความเร็วจากไฟล์แหล่งที่มา C ไปยังไฟล์  แหล่งที่มา C เมื่อฟังก์ชั่นของคุณอยู่ในไฟล์แหล่งข้อมูล C คอมไพเลอร์ C2H สามารถ "เห็น" และแปลงเป็นตัวเร่งฮาร์ดแวร์ได้อย่างมีประสิทธิภาพ 

     

    มีขั้นตอนเพิ่มเติมที่จําเป็นสําหรับการผสมฟังก์ชัน C และ C (และไฟล์)

     

    ห่วงโซ่เครื่องมือ GNU รองรับการเรียกฟังก์ชัน C จากโปรแกรม C (และในทางกลับกัน) ผ่านวิธีการที่กําหนดไว้อย่างดีของการตรวจสอบ   อย่างชัดแจ้ง วิธีการทํางานนี้คือ จากโปรแกรม C ของคุณ คุณบอกคอมไพเลอร์ว่าฟังก์ชันใดควรเรียกว่าฟังก์ชัน C แทนที่จะเป็น C  การดําเนินการนี้ทําได้โดยใช้ตัวอักษร "C" ภายนอกที่อยู่ภายในไฟล์แหล่งที่มาของ C

     

    ตัวอย่างของการกระทําแบบ "C" ภายนอก มีดังนี้:

    1. การเรียกฟังก์ชัน C จากโปรแกรม C

    การตั้งค่า:  คุณมี ฟังก์ชัน void bar (void) ซึ่งอยู่ในไฟล์แหล่งที่มา C "bar.c" ที่คุณต้องการโทรจากไฟล์แหล่งที่มา C "foo.cpp"

    โซลูชัน:  เพิ่มสิ่งนี้ไปยังด้านบนของ "foo.cpp"-  

                    Extern "C"void foo(void);

     

    1. การเรียกฟังก์ชัน C จากโปรแกรม C

    การตั้งค่า:  ชุดฟังก์ชันที่อาศัยอยู่ในไฟล์ต้นฉบับ C "bar.c" ที่คุณต้องการโทรจากไฟล์แหล่งที่มา C "foo.cpp"

    โซลูชัน:  เพียงแค่เพิ่มการจัดฟันรอบกลุ่มฟังก์ชันที่ด้านบนของคําแถลงภายนอกใน "foo.cpp"-  

                    Extern "C" {

    โมฆะ foo(void);

    int foo2 (จํานวน int);

    int foo3(int number1, int number2);

    }

     

    1. การโทรไปที่ส่วนหัว C จากโปรแกรม C

    การตั้งค่า: คุณมีชุดฟังก์ชัน C (หรือไลบรารี) ทั้งหมดในไฟล์ที่ชื่อ "bar.c" ที่คุณต้องการโทรจากโปรแกรม C "foo.c" และคุณไม่ต้องการแสดงรายการแยกตามขั้นตอนที่ #2 (ข้างต้น)  คุณมีไฟล์ส่วนหัวสําหรับ "bar.c" ที่เรียกว่า "bar.h" ซึ่งประกาศอินเทอร์เฟซไปยังฟังก์ชัน

    โซลูชัน: คําสั่งภายนอกยังทํางานสําหรับไฟล์ส่วนหัว... ในไฟล์ "foo.cpp" ให้ใช้คําสั่ง extern เพื่อเพิ่มไฟล์ส่วนหัว-

                    Extern "C" {

                                    #include "bar.h"

    }

     

     

    ใช้วิธีการใดกับ C2H ดีที่สุด When ใช้คอมไพเลอร์ C2H ขอแนะนําให้ผู้ใช้ "แยก" ฟังก์ชันสําหรับการเร่งความเร็วเป็นไฟล์ของตัวเองดังนั้นการใช้ตัวอย่างแรกจึงเป็นวิธีที่ดีที่สุดในการเร่งความเร็วฟังก์ชันด้วยคอมไพเลอร์ C2H

     

    ผลิตภัณฑ์ที่เกี่ยวข้อง

    บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

    อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

    เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้