大哥大姐们!关于两个qt项目,一个项目调用另一个项目中的东西,产生异常
大哥大姐们!关于两个qt项目,一个项目调用另一个项目中的东西,产生错误。
IDE为VS2008,有A和B两个qt项目。B 需要调用A项目中的某些接口。A生成的是DLL,B中也链接了A的lib等。都设置完成。然后编译B会出现 1.无法解析的外部符号etaObject(void)const "2.无法解析的外部符号qt_metacast。3.无法解析qt_metacall(enum QMetaObject::Call,int,void * *)。这三个无法解析。如果说在B中 include了A项目中的 moc_xx.cpp 则可以编译运行通过。可是这样做,在一个大项目中显然不太正确。求问各位大神,我是哪里设置出问题了吗。我在B中调用前辈没写的qt项目,一点问题也没有。好纠结啊!
------解决思路----------------------
感觉是你的导出部分有问题。每个Qt的DLL不都是这么过来的么?
------解决思路----------------------
A项目有问题吧,貌似moc_xxx.cpp什么的都没编译进去。
------解决思路----------------------
A项目检查一下,看看是否有全局变量?全局变量不会写入dll中。
IDE为VS2008,有A和B两个qt项目。B 需要调用A项目中的某些接口。A生成的是DLL,B中也链接了A的lib等。都设置完成。然后编译B会出现 1.无法解析的外部符号etaObject(void)const "2.无法解析的外部符号qt_metacast。3.无法解析qt_metacall(enum QMetaObject::Call,int,void * *)。这三个无法解析。如果说在B中 include了A项目中的 moc_xx.cpp 则可以编译运行通过。可是这样做,在一个大项目中显然不太正确。求问各位大神,我是哪里设置出问题了吗。我在B中调用前辈没写的qt项目,一点问题也没有。好纠结啊!
------解决思路----------------------
感觉是你的导出部分有问题。每个Qt的DLL不都是这么过来的么?
------解决思路----------------------
A项目有问题吧,貌似moc_xxx.cpp什么的都没编译进去。
------解决思路----------------------
A项目检查一下,看看是否有全局变量?全局变量不会写入dll中。