Проблема со статической связью библиотеки hunspell в visual studio 2010 - PullRequest
2 голосов
/ 08 марта 2011

Я не могу статически связать библиотеку hunspell с моим проектом C ++ в Visual Studio 2010.

Я скачал hunspell и пошел в папку hunspell-1.3.1\src\win_api. Я открыл файл libhunspell.vcproj в visual studio 2010 и преобразовал проект. Я построил решение в конфигурации Realease, и он сгенерировал файл "libhunspel.lib" в папке hunspell-1.3.1\src\win_api\Release\libhunspell.

В моей простой C ++ консольной программе, использующей hunpell:

  • Я добавил эту папку с файлом libhunspel.lib в Страницы свойств / Свойства конфигурации / Каталоги VC ++ / Библиотечные каталоги

  • Я добавил папку «hunspell-1.3.1 \ src \» в Страницы свойств / Свойства конфигурации / Каталоги VC ++ / Включение каталогов

  • и "libhunspell.lib" в Страницы свойств / Linker / Input / Дополнительные зависимости .

Но это все еще дает мне неразрешенную внешнюю ошибку символа:

Error   2   error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall Hunspell::spell(char const *,int *,char * *)" (__imp_?spell@Hunspell@@QAEHPBDPAHPAPAD@Z) referenced in function _main   C:\Users\Me\Documents\Visual Studio 2010\Projects\hunspell_learning\hunspell_learning\main.obj  hunspell_learning
Error   3   error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Hunspell::Hunspell(char const *,char const *,char const *)" (__imp_??0Hunspell@@QAE@PBD00@Z) referenced in function _main   C:\Users\Me\Documents\Visual Studio 2010\Projects\hunspell_learning\hunspell_learning\main.obj  hunspell_learning
Error   1   error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Hunspell::~Hunspell(void)" (__imp_??1Hunspell@@QAE@XZ) referenced in function _main C:\Users\Me\Documents\Visual Studio 2010\Projects\hunspell_learning\hunspell_learning\main.obj  hunspell_learning
Error   4   error LNK1120: 3 unresolved externals   C:\Users\Me\Documents\Visual Studio 2010\Projects\hunspell_learning\Debug\hunspell_learning.exe 1   1   hunspell_learning

Понятия не имею, что может быть не так. Я также пытаюсь с динамической библиотекой. Построил решение Hunspell в Release_dll конфигурации и только что изменил Включите каталоги в мое приложение на hunspell-1.3.1\src\win_api\Release_dll\libhunspell и он скомпилируется. Мне нужно только скопировать libhunspell.dll туда, где моя исполняемая программа, так что dll будет загружена.

1 Ответ

1 голос
/ 13 мая 2011

Вам нужно поместить "#define HUNSPELL_STATIC" где-нибудь в вашем stdafx.h.

...