error LNK2019: 无法解析的外部符号 "public: void __thiscall

本文解决了一个在C++项目中遇到的错误,即解析外部符号失败导致的编译错误。通过分析错误信息,发现是因为在.h文件中使用了inline关键字,而在源文件中未正确实现导致。解决方案是在.h文件中移除inline关键字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误信息:

error LNK2019: 无法解析的外部符号 "public: void __thiscall CArcBall::setBounds(int,int)" (?setBounds@CArcBall@@QAEXHH@Z),该符号在函数 "public: void __thiscall CChild3DView::OnSize(unsigned int,int,int)" (?OnSize@CChild3DView@@QAEXIHH@Z) 中被引用
1>D:\Visual Studio 2008\mod\mod\Debug\mod.exe : fatal error LNK1120: 1 个无法解析的外部命令


错误代码:

XXX.h

	inline
        void    setBounds(int NewWidth, int NewHeight);



XXX.cpp

void CArcBall::setBounds(int NewWidth, int NewHeight)
{
    //设置长宽的调整因子
    this->AdjustWidth  = 1.0f / (((GLfloat)NewWidth  - 1.0f) * 0.5f);
	this->AdjustHeight = 1.0f / (((GLfloat)NewHeight - 1.0f) * 0.5f);
}

呵呵,因为之前这个函数的定义是直接放在.h文件里的,就用了inline,结果放到源文件里的时候就没有注意。。。。。


解决办法:

去掉  inline   就好了~~



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值