Ошибка компиляции внешнего интерфейса Simulink

0

Я получаю ошибку компилятора, когда пытаюсь скомпилировать модель Simulink с кодом C/C++ с внешним интерфейсом:

ert_main.cpp(118): error C3861: 'rtSetTFinalForExtMode': identifier not found ert_main.cpp(129): error C3861: 'rtERTExtModeStartMsg': identifier not found NMAKE: fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE"': return code '0x2' Stop. The make command returned an error of 2

Модель компилируется без ошибок, если для интерфейса установлено значение " none ".

Я использую Matlab 2013a (Simulink 8.1). Используется компилятор Microsoft Visual 2010 Professional.

  • 1
    Я предполагаю, что в данном случае под внешним интерфейсом подразумевается внешний режим. Правильны ли все элементы вашего решения? Возможно, вам придется включить определенные пути из корня Matlab.
  • 0
    Да, я имею в виду Внешний режим. Я предполагаю, что все включения правильны. Я установил пути к моей цели (WinAC). Мне удалось избавиться от одной из двух ошибок «идентификатор не найден», поэтому я думаю, что это проблема Matlab «путь». Но я не знаю, какие пути включить.
Теги:
external
interface
simulink

1 ответ

0
Лучший ответ

Проблема решена. Для людей, столкнувшихся с одной и той же проблемой: - Документация Siemens WinAC (пример) использует только Matlab2012b, подумайте о компиляции вашей модели в версии Matlab 2012b, когда вы используете другую версию;

  • В рабочей области Matlab cd введите свой путь к C:\Program Files\Siemens\WinAC\WinAC Target\WinAC Target Files и запустите startup.m -file;

  • НЕ изменяйте текущее местоположение поиска;

  • НЕ вставляйте никакие другие исходные файлы в это местоположение, иначе вы путаете компилятор, который должен взять файл;

В моем случае я получил следующие ошибки:

    C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(343) : error C2065: 'ODK_YEAR_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(343) : error C2065: 'ODK_YEAR_MIN' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(346) : error C2065: 'ODK_MON_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(346) : error C2065: 'ODK_MON_MIN' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(349) : error C2065: 'ODK_DAY_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(349) : error C2065: 'ODK_DAY_MIN' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(352) : error C2065: 'ODK_HOUR_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(352) : error C2065: 'ODK_HOUR_MIN' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(355) : error C2065: 'ODK_MIN_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(355) : error C2065: 'ODK_MIN_MIN' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(358) : error C2065: 'ODK_SEC_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(358) : error C2065: 'ODK_SEC_MIN' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(361) : error C2065: 'ODK_MILLI_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(361) : error C2065: 'ODK_MILLI_MIN' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(364) : error C2065: 'ODK_WDAY_MAX' : undeclared identifier 
C:\PROGRA~1\Siemens\WinAC\WINACT~1\WINACT~1\src\WinLCReadWriteData.cpp(364) : error C2065: 'ODK_WDAY_MIN' : undeclared identifier 
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE"' : return code '0x2' 
Stop.

Чтобы отключить эту ошибку, откройте WinLCReadWriteData.cpp -file и закомментируйте строки с 343 по 365.

Теперь он компилируется отлично, без ошибок. Внешний режим также работает без проблем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню