我自己用C++写了一个静态的Lib类库,其中使用了对Unicode字符串的操作,分别编译成Debug版和Release版。当使用该库时发现,将该库和调试程序一起编译成Debug版时,没问题,运行OK;但是将该库和调试程序一起编译成Release版版时,类库中的许多函数编译后在连接时出错,如下:
error LNK2001: unresolved external symbol "public: __thiscall CUserAdmin::~CUserAdmin(void)" (??1CUserAdmin@@QAE@XZ)error LNK2001: unresolved external symbol "public: int __thiscall CUserAdmin::IsAdministrator(void)" (?IsAdministrator@CUserAdmin@@QAEHXZ)等等。当然其中有一些并没有报错。我将类库和这些信息仔细比对了,并没有发现有什么不同,而且那些报错的函数我确实已经在CPP文件中都实现了。这到底是怎么回事?
error LNK2001: unresolved external symbol "public: __thiscall CUserAdmin::~CUserAdmin(void)" (??1CUserAdmin@@QAE@XZ)error LNK2001: unresolved external symbol "public: int __thiscall CUserAdmin::IsAdministrator(void)" (?IsAdministrator@CUserAdmin@@QAEHXZ)等等。当然其中有一些并没有报错。我将类库和这些信息仔细比对了,并没有发现有什么不同,而且那些报错的函数我确实已经在CPP文件中都实现了。这到底是怎么回事?
先確定你的调试程序的release版本的正確.看看link裡面的.lib是否存在不一樣的問題.
如strmbasd.lib是給Debug提供的.而他的Release的要改名為strmbase.lib
改名是怎么回事?
对大家表示感谢,回复的都有分。
你把你的調試程序的Link裡面的lib拷貝過來看看..