作者sennin32 (Sennin32)
看板C_and_CPP
标题[问题] Link error
时间Sat Jun 6 02:32:35 2009
呼 好晚了还在跟程式奋斗...
遇到一点问题,这问题其实常常困扰我
我用的环境是VC2008,有时候遇到这问题是重新建方案,什麽都不改就可以做了
但是有时候不行
错误是这样的:
ShowHandmain.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall
YSYServer::YSYServer(unsigned short,int)" (??0YSYServer@@QAE@GH@Z) 在函式
_main 中被参考
E:\Work\ComputerNetwork\ShowHand\ShowHand\Debug\ShowHand.exe : fatal error
LNK1120: 1 个无法解析的外部符号
我有include一个.h档:YSYserver.h,这个档案放在一个整理好的资料夹,用设定来增加
include目录,因为这个只有.h没有定义
所以编译好的.lib档是放在另一个资料夹中,一样用设定来增加lib目录
然後我创造一个新的专案,需要用到之前写好的这个函式库,因为之前的那个函式库中
有一个clsass名字叫做YSYServer,而新的专案中也创造了一个class,这个class中宣告了
一个YSYServer指标的变数,如果只有这样下去编译事都没有问题的
但是我要用new指定一个记忆体区块给这个变数时,在使用建构子却会发生上面说的那个
问题,有人能够告诉我这是出了什麽问题吗?
-----------------------------------0606更新---------------------------------
我发现一个问题
因为我在写这个程式时,将很多东西分开写成一个个lib(通常都是用class来写)
假设我已经编译好一个A.lib
而我在制作B.lib时,需要用到A
这时候不会有问题发生
但是如果这时候我又要写一个C.exe也需要用到A.lib
却连建构子都不能跑,一样会跑出LINK error
请问有人遇过类似情况能帮助我解决这个问题吗?
谢谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.10.69.94
1F:推 avhacker:YSYServer::YSYServer(unsigned short,int) 的实在写在哪 06/06 09:31
2F:→ sennin32:在YSYserver.cpp这个档案中 06/06 09:38
3F:推 avhacker:这个 constructor 该不会被宣告为 inline 吧? 06/06 10:07
4F:→ sennin32:呃 我不懂"inline"是什麽意思耶... 06/06 10:11
※ 编辑: sennin32 来自: 124.10.69.94 (06/06 12:14)
5F:→ sennin32:囧 没人知道吗O_Q? 06/06 20:53
6F:推 littleshan:自己 google 马上就知道 inline 的意思了 06/06 21:13
7F:→ littleshan:何必等人解释 06/06 21:14
8F:→ sennin32:呃...我有查inline了,我并没有使用那个0.0... 06/07 00:08
9F:→ sennin32:我的意思是没人知道这个错误的原因吗 囧 让你误会了 抱歉 06/07 00:08
10F:→ sennin32:我在想会不会是我编译lib时设定出了问题... 06/07 00:09