में शामिल किया गया है मैंने .cl
फ़ाइल में एक ओपनसीएल कर्नेल लिखा है। यह कई शीर्षलेखों को #include
करने का प्रयास करता है।में हेडर को ओपनसीएल .cl फ़ाइल
इसका संकलन विफल रहता है, क्योंकि शामिल हेडर फाइलें "नहीं मिली" हैं। मुझे पता है कि clBuildProgram
-I dir
विकल्प ले सकता है, जो शीर्षलेख फ़ाइलों के लिए खोज की जाने वाली निर्देशिकाओं की सूची में dir
निर्देशिका को जोड़ता है।
ख्रोनस साइट फोरम में इस पोस्ट http://www.khronos.org/message_boards/viewtopic.php?f=37&t=2535 इस मुद्दे के बारे में बात करता है।
वे clCreateProgramWithSource
का उपयोग करने का प्रस्ताव करते हैं जो सभी स्रोतों (.h फ़ाइलों सहित) निर्दिष्ट करता है।
- कौन-सा विकल्प बेहतर है:
मैंने इस समस्या पर एक प्रश्न हैं? (
clBuildProgram
बनामclCreateProgramWithSource
, ऊपर वर्णित अनुसार) - यदि मैं
clCreateProgramWithSource
का उपयोग करता हूं तो संकलक को कैसे शामिल करना है? मेरा मतलब है, कौन सा स्रोत है जिसके लिए फ़ाइल नाम शामिल है? - यदि मैं
clBuildProgram
का उपयोग करता हूं और फाइलों को शामिल करने वाली कई निर्देशिकाएं हैं, तो मैं उन्हें कैसे निर्दिष्ट करूं?
एएमडी एपीपी, मैं के साथ समस्याओं भी मेरे अनुभव से (यह बस काम नहीं करता है) है। – Thomas
यह दिलचस्प है। हालांकि मैंने इसे सीपीयू पर परीक्षण किया। मेरे पास एएमडी जीपीयू नहीं है इसलिए मैं इसे GPU पर परीक्षण नहीं कर सकता। शायद यह एक जीपीयू बनाम सीपीयू मुद्दा है? –
नहीं, मैंने विंडोज़ के तहत दोनों उपकरणों के तहत इसे आजमाया, संकलक बस सापेक्ष शामिल पथों को संभालने में प्रतीत नहीं होता है। असल में, मेरे पास मेरे कंपाइलर कमांड लाइन में "-आई क्ल /" है, और मेरे कर्नेल को क्ल/निर्देशिका में व्यवस्थित ढंग से व्यवस्थित किया गया है, और यह इंटेल/लिनक्स के तहत ठीक काम करता है, एएमडी में इसमें से कोई भी नहीं होगा, कोई फर्क नहीं पड़ता मैं क्या कोशिश करता हूं, और मुझे मिला एकमात्र समाधान या तो # .cle निर्देशों में प्रत्येक .cl फ़ाइल के * पूर्ण पथ * को हार्डकोड करना था, या सिस्टम/पथ में मेरा क्ल/फ़ोल्डर जोड़ें। यह मेरी स्थापना हो सकती है जो टूट गई है, हालांकि, मैं अपने विंडोज सिस्टम को जितना ज्यादा अपने लिनक्स के रूप में नहीं रखता हूं। – Thomas