我尝试在我的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"
答案 0 :(得分:3)
您使用UNICODE / _UNICODE定义了exe,因为TCHAR扩展为wchar_t(请参阅链接器错误),所以我的猜测是您构建了lib而没有定义UNICODE / _UNICODE 或没有将lib输出目录添加到exe属性中的lib输入目录列表中。