ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
286151
Ale3000 (25.11.2011 05:37 - 05:44, просмотров: 1341)
IAR 6.1 для AVR Linker не видит ассемблерные процедуры, если Си-шный код компилируется в режиме С++. Есть рабочий проект на С. Компилируется и исполняется без ошибок. Проект состоит из нескольких файлов с раширением .с и одного ассемблерного с расширением .s90 Хочу перевести на С++. Проект компилируется без ошибок, но линкер не видит ассемблерные функции и выдает ошибки следующего содержания:
Error[e46]: Undefined external "DES_Encrypt(unsigned char __huge *, unsigned char __huge *, unsigned char *)" referred  in main ( D:\Soft\Project\Debug\Obj\main.r90 )
Соответствующая ассемблерная функция написана так: MODULE DES_Encrypt PUBLIC DES_Encrypt RSEG CODE DES_Encrypt: DES_INTERNAL_Prolog DES_INTERNAL_Load_Data DES_INTERNAL_LoadKey1 clh DES_INTERNAL_DES_Routine DES_INTERNAL_Store_Data DES_INTERNAL_Epilog adiw r28,2 ret ENDMOD Макросы DES_INTERNAL_Prolog, DES_INTERNAL_Load_Data, DES_INTERNAL_LoadKey1, DES_INTERNAL_DES_Routine, DES_INTERNAL_Store_Data, DES_INTERNAL_Epilog не описываю из экономии места. В заголовочном файле функция объявлена вот так: void DES_Encrypt(BYTE __huge* pOut, BYTE __huge* pIn, BYTE __near* key); Как слинковать проект с файлами С++ ?