मैं एक मैक्स फ़ाइल में FFTW कोड चलाने की कोशिश कर रहा हूं। यह सख्ती से विकास और परीक्षण के उद्देश्य के लिए है। कुछ googling के बाद, मैं देखता हूं कि दूसरों ने कुछ ऐसा करने की कोशिश की है और समस्याओं से संबंधित है, लेकिन मुझे कोई समाधान नहीं मिला है। मैक्स फ़ाइल चलाने का प्रयास करते समय, मैटलैब मुझे बताता है:Matlab Mex फ़ाइल में FFTW को लिंक करना
??? ==> chirpTransform.mxCta का उपयोग करने में त्रुटि अमान्य MEX-file '\ हटा \ मेरी \ निर्देशिका \ + chirpTransform \ mxCta.mexw32': निर्दिष्ट प्रक्रिया नहीं मिली।
।
मैं मैक्स फ़ाइल बनाने के लिए मिनीगू के साथ gnumex का उपयोग कर रहा हूं क्योंकि एलसीसी में कुछ समस्याएं हैं। मैंने FFTW साइट (http://www.fftw.org/install/windows.html) से 32 बिट डीएलएल का उपयोग करने का प्रयास किया है। मैंने Matlab 200b bin निर्देशिका में fftwf3.dll का उपयोग करने का प्रयास किया है। मैंने एमएसआई/मिनजीडब्ल्यू का उपयोग कर स्रोत से डीएलएल बनाया। सभी मामलों में, परिणाम एक ही हैं। सभी मामलों में मैंने lib फ़ाइल उत्पन्न करने के लिए निम्नलिखित किया था।
c: \ gnumex \ mexdlltool.exe -d libfftw3f-3.def डी libfftw3f-3.dll -l libfftw3f.lib --as C: \ MinGW \ बिन \
as.exe
मैंने विजुअल स्टूडियो lib.exe उपकरण का उपयोग करने की कोशिश की और विभिन्न मैडेलटोल झंडे के साथ प्रयोग किया।
ऐसा प्रतीत होता है कि मैं सीधे matlab की loadlibrary कार्यक्षमता का उपयोग कर fftwf3-3.dll में फ़ंक्शंस को कॉल कर सकता हूं। चूंकि डीएलएल समस्या नहीं प्रतीत होता है, इसलिए मैंने fftwf3 का एक स्थिर संस्करण बनाने और इसे सीधे मैक्स फ़ाइल में जोड़ने की कोशिश की। मुझे एक ही परिणाम मिल गया! अगर मैं एफएफटीडब्ल्यू कोड हटा देता हूं, तो मैक्स फ़ाइल ठीक चलती है। मैंने अभी इस बिंदु पर छोड़ दिया है, और मैं परीक्षण के वैकल्पिक तरीकों के साथ आने के लिए तैयार हूं।
"एलसीसी में कुछ समस्याएं हैं" - आपका क्या मतलब है? –
क्या आप जिस मेक्स का उपयोग कर रहे हैं उसका कोड पोस्ट कर सकते हैं (कम से कम प्रासंगिक भागों)? – Amro
मैटलैब वास्तव में अपने एफएफटी के लिए आंतरिक रूप से एफएफटीडब्ल्यू का उपयोग करता है। सुनिश्चित करें कि FFTW का आपका संस्करण उस मैटलैब का उपयोग नहीं करता है, या Matlab FFTW लाइब्रेरी के विरुद्ध लिंक करता है। – sfstewman