一个unresolved external的问题

acqy acqy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的代码如下:
// ------------ 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 的解决方案

Lu_ci_fe_r

解决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

weixin_38628429

[Linker Error] Unresolved external 'viOpen' referenced from

[Linker Error] Unresolved external 'viOpen' referenced from 这种错误的解决方法

yhvivia

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 我的业务关系没毛病啊! 可是我要怎么解决呢?这种循环引用问题呢?

lj_70596
评论 10
收藏 已收藏
分享
返回顶部
acqy
C++ 语言 65,214 成员 250,514 内容