0

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

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

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

我很感激你们可以在这方面提供任何帮助。当然,如果您需要查看我的代码的不同部分,请告诉我,我也会发布。

谢谢

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

4

1 回答 1

0

if InventoryGUI class is defined in a shared library ("dll") and used in an executable, then you have to export its symbols (on Windows build that is). so try something like :

#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
{
...
};

Then, the library defining InventoryGUI should have defined MY_LIB_EXPORTS. For example if you use pro files system, it would look like

DEFINES += MY_LIB_EXPORTS

Other projects should not. Check if there is a similar mechanism for the other classes of the library.

于 2013-06-13T19:32:43.247 回答