![]() |
Ошибка компиляции LNK2019
Решил написать небольшой велосипед для работы с форматом BMP. Написал структуры данных, пытаюсь скомпилить - получаю error LNK2019.
Код: http://pastebin.com/cLcJ3mAJ |
belk94 компиляция как раз проходит. LNK это ошибка линковки.
В данном коде void main должна хоть как-то определенна. Например void main { } Это избавит в будущем от потенциальной ошибки LNK1561: entry point must be defined По данной ошибке (LNK2019 unresolved external symbol 'symbol' referenced in function 'function'), возможно пути к Lib не определенны. |
Admiral, что означает "пути к Lib"?
|
belk94 вот на этом скриншоте строка Additional Library Directories
Скрин отсюда для 2005й версии Visual C++, в 2008 так же. Добираться так: Tools -> Options -> Projects and Solutions -> VC++ Directories -> Show directories for: -> Library files. Это всего лишь предположения, если проект состоит только из этого файла, а с путями всё ОК выведется ошибка LNK1561, а не LNK2019. А какой полностью текст ошибки? |
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
А с библиотеками всё в порядке - на этой же Студии уже делал несколько проектов. |
Цитата:
1. Функция-шаблон реализована в файле .cpp. Поскольку код такой функции создаётся для каждого из параметров по мере использования, её код должен быть помещён в .h 2. Код функции в библиотеке не был скомпилирован по причине неиспользования в самой библиотеке. (лечится добавлением особой команды, которую я уже не помню) 3. Не совпадают параметры вызова функции, указанные по-умолчанию в свойствах проекта программы и подключаемой библиотеки. Во избежание этого всегда надо указывать __fastcall или аналогичную команду. В*данном проекте вижу следующие нестыковки 1. Отсутствуют параметры вызова у функций 2. Параметры функции main не соответствуют стандартным 3. Методы operator= должны возвращать ссылку на сам объект Код:
WORD& operator = (int a) |
Цитата:
Код:
WORD a; Цитата:
Цитата:
Код:
void operator = (Long a) //приравнять к длинному числу |
belk94, конечно, это не так важно, но возвращение результата в функциях operator= (а также +=, -= и т.д.) позволяет использовать его в составных командах.
a = b = c; F (a += b); (a -= b).M(); Цитата:
Если в каком-либо файле директивами предпроцессора будут заданы другие параметры вызова функций, то в результате на этапе линковки компилятор не найдёт в объектном модуле нужной функции |
El Scorpio, у меня слишком простая программа для всего этого.
|
Время: 19:59. |
Время: 19:59.
© OSzone.net 2001-