error LNK2019

来源:岁月联盟 编辑:exp 时间:2012-09-27

tcpclient error LNK2019: 无法解析的外部符号 "public: __thiscall acl::TcpClient::TcpClient(void)" (??0TcpClient@acl@@QAE@XZ) ,该符号在函数 "public: __thiscall CTcpClient::CTcpClient(void)" (??0CTcpClient@@QAE@XZ) 中被引用

后来发现是单线程/多线程的问题,描述如下:
运行时库现在包含可防止混合不同类型的指令。如果试图在同一个程序中使用不同类型的运行时库或使用调试和非调试版本的运行时库,则将收到此警告。例如,如果编译一个文件以使用一种运行时库,而编译另一个文件以使用另一种运行时库(例如单线程运行时库对多线程运行时库),并试图链接它们,则将得到此警告。应将所有源文件编译为使用同一个运行时库。有关更多信息,请参见使用运行时库(/MD、/MT 和 /LD)编译器选项。
 解决方案:
于是打开项目属性,在“配置属性-->C/C++-->代码生成-->运行时库”中将“多线程(/MT)”修改为“多线程调试(/MTd)”,
或者Project -> ** Properties-> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library  -> Multi-threaded (/MT)  改为 Multi-threaded Debug (/MTd)

图片内容