一个unresolved external的问题
// ------------ test.h
#ifndef __TEST_H
#define __TEST_H
#ifdef __cplusplus
extern "C" {
#endif
class Test
{
protected:
unsigned short mp_port;
public:
virtual unsigned short GetPort();
virtual void SetPort(unsigned short port);
}
#ifdef __cplusplus
}
#endif
#endif
// ------------- test.cpp
#include "test.h"
unsigned short Test::GetPort()
{
return mp_port;
}
void Test::SetPort (unsigned short port)
{
mp_port = port;
}
现在的问题是:链接后仅在SetPort函数上出现unresolved external的错误,而GetPort函数却没有问题。
如果将SetPort函数更名为其它的名称,例如FF或者任何名称,就可以编译通过
如果将SetPort的实现搬到.h文件中,同样也可以编译通过。
请问高手,这是什么原因呢?
相关推荐
[Linker Error] Unresolved external 问题的解决方法
BCB里遇到过的问题 [Linker Error] Unresolved external 'mysql_init' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR.LXSERVER\桌面\TESTINSERTMYSQL\UNIT1.OBJ 的解决方案
解决error LNK2001: unresolved external symbol
解决error LNK2001: unresolved external symbol
提示出现unresolved external symbol _main的解决方法
提示出现unresolved external symbol _main搜了下找了下原因如下在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crt
[Linker Error] Unresolved external 'viOpen' referenced from
[Linker Error] Unresolved external 'viOpen' referenced from 这种错误的解决方法
C语言多个文件都include同一个文件时报多重定义.unresolved external symbol,multiply defined symbols f
如何解决 C语言多个文件都include同一个文件时报多重定义的问题 unresolved external symbol,multiply defined symbols found 这是一个困扰C语言新手的问题 #include没毛病 但是用多了就出毛病 看代码,哪都没毛病 在B中#include A 在A中#include B 此时build就会报unresolved external symbol,multiply defined symbols found 我的业务关系没毛病啊! 可是我要怎么解决呢?这种循环引用问题呢?


