سؤال

لدي MEX64 DLL تم تجميعها على الجهاز الخاص بي. لقد استخدمت MATLAB 2009B مع VS2008 Pro لتجميع DLL. يعمل DLL بشكل جيد على تثبيت MATLAB الخاص بي.

أريد أن يستخدم زميل DLL ، لذا أرسلته إليه ويحصل على رسالة الخطأ التالية عند محاولة استخدام DLL:

؟؟؟ غير صالح ملف mex 'filename.mexw64': لا يمكن العثور على الوحدة النمطية المحددة.

افتراضي الحالي هو أن هذا ناتج لأنه يستخدم إصدار MATLAB الأقدم أو في عداد المفقودين DLL لدي. ركضت مدقق التبعية وطلبت منه التحقق من أنه لديه جميع DLLs المدرجة.

ما زلت أنتظره لتأكيد نسخته MATLAB.

ما هي الأسباب الأخرى التي يمكن أن تسبب هذا ويمكن أن تحدث إصدار MATLAB فرقًا؟ (أعني R2009A عندما يكون لدي R2009B وليس إصدارًا ضخمًا)


الشخص الآخر لديه MATLAB R2009A. ألا ينبغي أن تعمل MEX إذا قمت بتجميعها على جهاز الكمبيوتر الخاص بي وتسليمها إليه؟

هل هذا فقط يترك DLL المعال المفقود؟

هل كانت مفيدة؟

المحلول 4

كان DLL غلافًا للوصول إلى MySQL. لقد انتهى الأمر باستخدام MATLAB's ODBC وموصل MySQL.

نصائح أخرى

المشكلة غريبة ، لكن يمكنني تأكيد وجودها.

باستخدام المكتبات التي تم بناؤها مسبقًا لـ MATLAB التي يتم تثبيتها بشكل صحيح وفي المسار ، أحصل أحيانًا على نفس الخطأ. إذا قمت بكتابة اسم الوظيفة في سطر الأوامر ، فستكون الوظيفة مرئية وسوف تكمل تلقائيًا. ومع ذلك ، لن يتم تهيئة الوظيفة حتى أقوم بالقرص المضغوط في الدليل باستخدام ملف مكتبة .MEXW64.

>> AndorInitialize('')
Invalid MEX-file 'C:\Program
Files\MATLAB\R2011b\toolbox\andor\AndorInitialize.mexw64': The
specified module could not be found.

>> path

        MATLABPATH

    C:\Program Files\MATLAB\R2011b\toolbox\andor
    C:\Program Files\MATLAB\R2011b\toolbox\andor\camera files
    C:\Program Files\MATLAB\R2011b\toolbox\andor\m files
    ... etc

اتضح أن هذا يرجع إلى التبعيات المفقودة ، والتي لا ينبغي أن تكون مفقودة. لحل المشكلة ، استخدم تبعية ووكر (مجاني وخفيف الوزن) لتحديد ما هو مفقود. يشرح Mathworks هذا.

http://www.mathworks.com/support/solutions/en/data/1-2rql4l/

في حالتي ، لم يظهر اثنان من DLL بشكل صحيح ، على الرغم من أنهما كانا على نظامي وفي المسار. قمت بنسخ DLL إلى مجلد Windows/System32 وتعمل وظائف المكتبة الآن بشكل صحيح. الأمر الغريب بشكل خاص هو أن المكتبة نفسها عملت على جهاز الكمبيوتر الخاص بي قبل بضعة أيام (قبل نقل DLL).

بشكل عام ، يجب أن تعمل ملفات MEX عبر إصدارات مختلفة من MATLAB ؛ على وجه الخصوص ، يجب أن تكون متوافقة إلى الأمام. أنت على حق؛ يبدو وكأنه مشكلة DLL.

إذا قمت بإنشائها باستخدام Visual Studio ، فقد يكون مرتبطًا بوقت تشغيل C ++ المرئي. هذه مجموعة من المكتبات غير المثبتة على Windows افتراضيًا. يمكن تنزيل "إعادة التوزيع" لأنه يمكن تنزيله هنا; ؛ تثبيت زميلك في العمل يمكن أن يحل المشكلة. إذا لم ينجح ذلك ، فيمكنك الاستخدام تبعية ووكر للتحقق من تبعيات DLL الأخرى غير الرضا.

عادة ، يمكن أن يكون تكوين "mex -setup" الخاص بـ MATLAB لاستخدام ترجم LCC الذي تم توزيعه بـ MATLAB طريقة للتغلب على هذا ، لكنها غير مدعومة لنظام التشغيل Windows 64 بت.

أيضًا ، هل أنت متأكد من أن لديه إصدار 64 بت من Windows؟

قد يكون مصدر آخر محتمل للمشكلة هو أنك قمت بتجميعها في وضع التصحيح. تدعم Visual C ++ إعادة توزيع وضع الإصدار فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top