скомпилировать и связать статическую библиотеку CxImage в VC ++ - PullRequest
3 голосов
/ 27 июня 2011

Я пытался использовать CxImage в своем проекте VC ++, однако я использую пошаговое руководство для создания статических библиотек и связи с проектом в VC ++ 2010.

Все выглядит нормально, когда я генерирую проект, который связывает cximage.lib, но по какой-то причине, когда я использую определенные функции, компилятор бросил мне LINK:2001 unresolved external symbol.

Это первый раз, когда я работаю с визуальными статическими библиотеками, если у кого-то есть решение или предложение для этого, я был бы признателен.

вот мой код:

    #include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
    CxImage imag;
    imag.Save((const TCHAR *)"hola.bmp",CXIMAGE_FORMAT_BMP);
    return 0;
}

и вот оно, CxImage распознается компилятором, но некоторые функции на компоновщике нет. В этом случае функция Save, если я использовал другие функции и работаю, генерация прошла успешно. Я искал по сети и обнаружил, что могу, не включив библиотеку, но включив ее.

Ошибка ссылки следующая:

pruebaCxImage.obj : error LNK2001: símbolo externo "public: bool __thiscall CxImage::Save(wchar_t const *,unsigned int)" (?Save@CxImage@@QAE_NPB_WI@Z) sin resolver

для получения дополнительной информации это команда моего компоновщика в проекте:

/OUT:"C:\Documents and Settings\diego\Mis documentos\Visual Studio 2008\Projects\pruebaCxImage\Release\pruebaCxImage.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"Release\pruebaCxImage.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Documents and Settings\diego\Mis documentos\Visual Studio 2008\Projects\pruebaCxImage\Release\pruebaCxImage.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "..\..\..\..\..\escritorio\cximage701_full\cximage\release\cximage.lib"

1 Ответ

3 голосов
/ 27 июня 2011

Вы создаете exe-файл с определением UNICODE / _UNICODE, так как TCHAR расширяется до wchar_t (см. Ошибку компоновщика), поэтому я предполагаю, что вы создали библиотеку без определения UNICODE / _UNICODE или не добавиликаталог вывода lib в список каталогов ввода lib в свойствах exe.

...