我在视觉工作室与Qt和Cryengine合作。我对像这样的大型项目很新,但我几乎到了为这个引擎添加一些东西的时候了。我的代码逐个编译,但当我尝试编译我的“独立游戏”项目时,我得到链接错误,在研究后我仍然不知道如何解决。我知道这些错误与我的代码InventoryGUI有关,因为当我删除该文件时,项目编译得很好,没有链接错误。
这是我的InventoryGUI代码以及尝试构建独立游戏时显示的错误 http://imgur.com/hzmGdvH
这是它包含的头文件。 http://imgur.com/o22GHXg
我感谢你们给予的任何帮助。当然,如果您需要查看我的代码的不同部分,请告诉我,我也会发布它。
由于
编辑:忘记添加函数“createInventory()”从另一个项目调用函数InventoryGUI。我相信在项目之间进行很可能是导致错误的原因。
答案 0 :(得分:0)
如果在共享库(“dll”)中定义InventoryGUI
类并在可执行文件中使用,则必须导出其符号(在Windows版本中)。
所以试试像:
#ifdef WIN32
# ifdef MY_LIB_EXPORTS
# define MY_LIB_DLL __declspec(dllexport)
# else
# define MY_LIB_DLL __declspec(dllimport)
# endif
#else
# define MY_LIB_DLL
#endif
class MY_LIB_DLL InventoryGUI
{
...
};
然后,定义InventoryGUI
的库应该定义MY_LIB_EXPORTS
。
例如,如果您使用专业文件系统,它看起来像
DEFINES += MY_LIB_EXPORTS
其他项目不应该。 检查库的其他类是否有类似的机制。