Я использую систему makefile с компилятором pvcs (с использованием компилятора Microsoft Visual C ++, 2008) и получаю несколько ошибок ссылок в виде:
error LNK2019: unresolved external symbol __imp__RegisterFilter@8 referenced in function _main
Это происходит, несмотря на объявление extern "C"
, а именно:
extern "C" int CLRDUMP_API RegisterFilter( LPCWSTR pDumpFileName, unsigned long DumpType );
Кроме того, в makeexe.mak библиотека связана как:
$ (COMPILEBASE) \ lib \ clrdump.lib \
Если честно, я не являюсь экспертом в make-файлах, и я перехожу из системы с Microsoft Visual C ++ 6.0 на 2008. Это изменение может иметь отношение к ошибкам связи, так как система работала до этого.
Любая помощь будет принята с благодарностью.
Заранее спасибо,
С уважением,
Джозеф
- Редактировать 1 -
Кто-нибудь знает, как включить многословность в системе make-файлов pvcs?
Обратите внимание, что вышеуказанная функция уже оформлена компилятором и имеет
__imp__RegisterFilter@8
, тогда как функция C ++ это просто
RegisterFilter
Спасибо за помощь, но если кто-нибудь сможет опубликовать более полное решение, это также будет очень признательно.
С уважением, Джозеф
- Изменить 2 -
Какой-то добрый человек опубликовал это, но когда я вошел в систему, оно исчезло:
Префикс imp указывает, что эта функция импортирована из DLL. Проверьте определение CLRDUMP_API
- это __declspec(dllimport)
? См. Эту статью для получения дополнительной информации.
Была рабочая ссылка, но я ее потерял, но, думаю, всегда можно поискать тему.
Спасибо, кем бы вы ни были!
- Редактировать 3 -
Спасибо, ChrisN (мне еще не разрешено голосовать). Несмотря на использование кнопки «Обновить», ваш ответ исчез, но затем снова появился после того, как я разместил вырезанную нить.
Это мое определение этого:
define CLRDUMP_API __declspec(dllimport) __stdcall
Я предполагаю, что __stdcall в порядке?
- Изменить 4 -
Хотя я ценю усилия тех, кто ответил, в частности ChrisN, по крайней мере, на моей конкретной системе, ошибка ссылки остается. Так что, если у кого-то есть дальнейшее понимание, я был бы признателен. Еще раз спасибо.