Visual Studios(多个项目)链接错误

时间:2013-06-13 19:18:07

标签: visual-studio-2010 qt cryengine

我在视觉工作室与Qt和Cryengine合作。我对像这样的大型项目很新,但我几乎到了为这个引擎添加一些东西的时候了。我的代码逐个编译,但当我尝试编译我的“独立游戏”项目时,我得到链接错误,在研究后我仍然不知道如何解决。我知道这些错误与我的代码InventoryGUI有关,因为当我删除该文件时,项目编译得很好,没有链接错误。

这是我的InventoryGUI代码以及尝试构建独立游戏时显示的错误 http://imgur.com/hzmGdvH

这是它包含的头文件。 http://imgur.com/o22GHXg

我感谢你们给予的任何帮助。当然,如果您需要查看我的代码的不同部分,请告诉我,我也会发布它。

由于

编辑:忘记添加函数“createInventory()”从另一个项目调用函数InventoryGUI。我相信在项目之间进行很可能是导致错误的原因。

1 个答案:

答案 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

其他项目不应该。 检查库的其他类是否有类似的机制。