سؤال

وكيف يمكنني تحديد ما إذا كان أنا على التوالي على 32BIT وأو 64bit نسخة من ماتلاب؟

ولدي بعض MEX-الملفات قبل تجميعها والتي تحتاج مختلفة مسار واعتمادا على 32 / 64BIT ماتلاب.

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

المحلول 2

وأخذ حتى على ScottieT812 وDWJ الاقتراحات، I إضافة حل بلدي لكسب بعض النقاط.

ووcomputer وظيفة إرجاع العمارة أنا على التوالي على. لذلك:

switch computer
    case 'GLNX86'
        display('32-bit stuff')
    case 'GLNXA64'
        display('64-bit stuff')
    otherwise
        display('Not supported')
end

ويعمل بالنسبة لي

نصائح أخرى

وأما مسألة 32 مقابل 64 بت هو حقا ذر الرماد في العيون. إذا فهمت بشكل صحيح، وتريد لتحديد مجموعة من الملفات MEX جمعت هناك حاجة لذلك يمكنك تعيين مسار مناسب. لهذا، يمكنك استخدام وظيفة mexext:

>> help mexext
 MEXEXT MEX filename extension for this platform, or all platforms. 
    EXT = MEXEXT returns the MEX-file name extension for the current
    platform. 

    ALLEXT = MEXEXT('all') returns a struct with fields 'arch' and 'ext' 
    describing MEX-file name extensions for all platforms.

    There is a script named mexext.bat on Windows and mexext.sh on UNIX
    that is intended to be used outside MATLAB in makefiles or scripts. Use
    that script instead of explicitly specifying the MEX-file extension in
    a makefile or script. The script is located in $MATLAB\bin.

    See also MEX, MEXDEBUG.

هل هذا حقا؟ إصدار ماتلاب الذي تستخدمه؟

وكما بقدر ما أنا على علم منصات 64 بت تنتهي "64" لا 86. من موقع ماتلاب http://www.mathworks.com/access/helpdesk/ مساعدة / techdoc / المرجع / computer.html لا أعتقد أن الكمبيوتر سوف يعود أي وقت مضى GLNXA86 لكن GLNXA64 بدلا من ذلك.

وهكذا هذا السؤال هو محدد لGNU ينكس 32BIT وأو 64BIT الإصدار.

إذا كنت اختبار لأي منصة 64BIT فإنك ربما تحتاج إلى اختبار الأحرف الأخيرة (2) العثور على "64" أي شيء من هذا القبيل

if regexp(computer,'..$','match','64'),
   % setup 64bit options
else,
   % 32bit options
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top