Я использую deploytool в Matlab последние несколько месяцев в своей 64-битной версии Matlab 2010b. Недавно я узнал, что мне нужно создать 32-битную версию моей общей библиотеки.Ошибки связи Matlab Compiler (64 бит против 32 бит)
Для этого я следую тем же методам, которые использовал ранее (в значительной степени вызываю команду mcc -W lib:MYLIB -T link:lib -d 'MYOUTPUTFOLDER' -v 'MFILE1' 'MFILE2'
) в своей версии Matlab 2009b 32. Я продолжаю получать ошибку LNK1811: не могу открыть входной файл LIBRARY.obj. Я попытался найти этот объектный файл LIBRARY, но я не могу найти его нигде.
До сих пор я проверял, чтобы были доступны все правильные библиотеки (найденные в $ MATLABROOT $ \ extern \ include \ win32), я убедился, что все мои пути верны в файле compopts.bat и Я использовал опцию -T compile: lib, которая отлично работает и создает dll. Это было бы здорово, но мне нужен файл lib, который будет использоваться позже в mbuild.
Мой текущий путь вперед состоит в том, чтобы взять compopts из моей 64-битной версии Matlab (на другой машине) и сравнить ее с моими компотами для 32-битного. Я опубликую, если это имеет значение.
Вы пытались запустить 'mcc' из оболочки dos. Может быть принудительно для $ MATLABROOT $ \ bin \ win32 \ mcc.exe и для ожидаемого файла 'compopts.x32.bat' с опцией' -f'. При компиляции для обеих дуг с одного и того же компьютера, matlab перезаписывает один и тот же 'compopts.bat' (позволяя' mbuild -setup' создавать его для меня) ... поэтому я закончил тем, что все в моем развертывании скриптов ... _well здесь вы говорите, используя два отдельных machine_ :(... – CitizenInsane
Я попытался запустить mcc из оболочки dos только сейчас, и он вернул те же ошибки. Я также попытался использовать мой подход выше и изменил некоторые из своих 32-битных компоновки на то, что они были на 64-битной земле который также не работал. Я не совсем понимаю ваше второе предложение о форсировании для $ MATLABROOT $ \ bin \ win32 \ mcc.exe и для ожидаемого файла 'compopts.x32.bat' с параметром -f, это то, что было бы был исправлен с запуском оболочки dos или мне нужно исправить файл mcc.exe? – Dingess
На компиляции ПК у меня есть как x64, так и x32 версии matlab, поэтому в зависимости от того, какую арку я хочу построить, я либо заставляю скрипты указывать на '~ \ win32 \ mcc.exe' или '~ \ win64 \ mcc.exe'. Для файла' compopts.bat' я создал один wi th matlab x64 ('mbuild -setup' => переименован в' compopts.x64.bat') и один с matlab x32 ('mbuild -setup' => переименован в' compopts.x64.bat'). Затем я снова принудительно верю в командную строку mcc с опцией '-f' * (Если не указано, mcc.exe использует последний сгенерированный' compopts.bat' [а так как matlab x64/x32 сгенерирует этот файл на том же диске, он может быть неверный]) * – CitizenInsane