ID บทความ: 000077342 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 30/11/2018

ทําไมฉันจึงได้รับข้อผิดพลาด "'clGetProfileDataDeviceIntelFPGA' ไม่ได้ถูกประกาศในขอบเขตนี้" เมื่อคอมไพล์รหัสโฮสต์ OpenCL

สิ่งแวดล้อม

  • Intel® Quartus® Prime Standard Edition
  • Intel® Quartus® Prime Pro Edition
  • เอฟพีจีเอ Intel® SDK สำหรับ OpenCL™
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    ฟังก์ชันไลบรารี clGetProfileDataDeviceIntelFPGA ต้องถูกเรียกว่าในโค้ดโฮสต์เมื่อรวบรวมข้อมูลเคอร์เนลรันอัตโนมัติแบบไดนามิก  หากฟังก์ชันนี้เรียกว่าโดยตรง การคอมไพล์โค้ดโฮสต์อาจล้มเหลวโดยมีข้อผิดพลาดดังที่อธิบายไว้ด้านล่าง

    Linux (gcc)

    ข้อผิดพลาด: 'clGetProfileDataDeviceIntelFPGA' ไม่ถูกประกาศในขอบเขตนี้

     

    Windows (Microsoft Visual Studio)

    ข้อผิดพลาด: สัญลักษณ์ภายนอกที่ยังไม่ได้แก้ไข clGetProfileDataDeviceIntelFPGA

     

    หากระบบใช้ไดรเวอร์ ICD จะไม่สามารถใช้ฟังก์ชันที่ไม่ได้มาตรฐาน เช่น ฟังก์ชัน IntelFPGA โดยตรงได้ ต้องใช้ ClGetExtensionFunctionAddress ในการรับตัวชี้ฟังก์ชันสําหรับฟังก์ชันที่ไม่ได้มาตรฐาน และต้องใช้ตัวชี้ดังกล่าวเพื่อเรียก

    ความละเอียด

    การใช้ต้นแบบของฟังก์ชันจะอยู่ใน CL/ext.h

    CL_API_ENTRY cl_int CL_API_CALLภายนอก

    clGetProfileDataDeviceIntelFPGA(

    cl_device_id /*device_id*/,

    cl_program /*program*/,

    cl_bool /*read_enqueue_kernels*/,

    cl_bool /*read_auto_enqueued*/,

    cl_bool /*clear_counters_after_readback*/,

    size_t /*param_value_size*/,

    โมฆะ * /*param_value*/,

    size_t * /*param_value_size_ret*/,

    cl_int * /*errcode_ret*/ );

    เปลี่ยนสายฟังก์ชัน

    สถานะcl_int = clGetProfileDataDeviceIntelFPGA (อุปกรณ์, โปรแกรม, เท็จ, จริง, เท็จ, 0, NULL, NULL, NULL);

    ด้วยรหัสโดยใช้ข้อกรอกด้านล่าง

    cl_int (*get_profile_fn)(cl_device_id, cl_program, cl_bool,cl_bool,cl_bool,size_t, โมฆะ *,size_t *,cl_int *);

    get_profile_fn = (cl_int (*) (cl_device_id, cl_program, cl_bool,cl_bool,cl_bool,size_t, โมฆะ *,size_t *,cl_int *)))clGetExtensionFunctionAddress("clGetProfileDataDeviceIntelFPGA")

    สถานะcl_int = (cl_int)(*get_profile_fn) (อุปกรณ์, โปรแกรม, เท็จ, จริง, เท็จ, 0, NULL, NULL, NULL);

     

     

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

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

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

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