在VC ++中编译和链接CxImage静态库

时间:2011-06-27 06:27:47

标签: winapi visual-c++ linker static-libraries linker-errors

我尝试在我的VC ++项目中使用CxImage,但是我使用了一个演练来创建静态库并与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 个答案:

答案 0 :(得分:3)

您使用UNICODE / _UNICODE定义了exe,因为TCHAR扩展为wchar_t(请参阅链接器错误),所以我的猜测是您构建了lib而没有定义UNICODE / _UNICODE 没有将lib输出目录添加到exe属性中的lib输入目录列表中。