Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Почему может выдаваться ошибка error LNK2001


Автор: As 29.2.2004, 00:17
Если к проекту приделан .asm файл, то при компиляции выдается: error LNK2001: unresolved external symbol на все функции которые находятся в нем. И вот такое: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16, когда проект создан как Win32. Подскажите пожалста.

Автор: maths_fan 29.2.2004, 00:19
А вы точно пишете на 32 разрыдном асме?!

Автор: maths_fan 29.2.2004, 00:20
то есть разрядном, просто такое впечатление, что 32 разрядность где-то не соблюдается, проверьте ещё раз асмовский код.

Автор: srd 29.2.2004, 00:38
Если вы просто добавили в проект файл с расширением ASM, то при компиляции среда его просто игнорирует. Компилируйте его ручками или настройте в его свойствах команду для компиляции (Custom Build Step). И еще, а у вас в проекте где-нибудь определена функция WinMain? Если в том же ASM файле, то понятно, почему ругается компоновщик.

Автор: srd 29.2.2004, 00:42
Забыл добавить, к прототипам функций, определенных в ASM файле, в коде на C++ следует добавить extern "C", а в самом ASM файле в начале имен этих функций следует добавить символ подчерка.

Автор: As 29.2.2004, 08:57
Похоже, что и в самом деле .asm не компилируются, отсюда и ошибка при сборке. А что нужно написать в Custom Build Step не знаю.

Автор: As 29.2.2004, 19:11
При компиляции получается такое сообщение:

Assembling ..\..\src\bitstream\x86_asm\cbp_mmx.asm
"nasm" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Error executing d:\windows\system32\cmd.exe.

и что с этим делать подскажите пожалста.

Автор: srd 1.3.2004, 02:26
А вы на чем пишете? nasm - это вроде Watcom? Попробуйте ml.exe. Получите OBJ файл, который надо дать линкеру.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)