【问题标题】:Definition of dllimport static field not allowed with Qt Creator and Cocos2dQt Creator 和 Cocos2d 不允许定义 dllimport 静态字段
【发布时间】:2020-07-20 10:36:00
【问题描述】:

我的任务是让最初在 Mac 上创建的 qt 项目在 Windows 上运行。它需要使用MinGW(g++和gcc)进行编译。

我在尝试构建项目时遇到了 _WIN32_WINDOWS 未定义的问题(尽管它在设置中说它们是),所以我暂时只是硬编码了那个位。 我还必须添加GL\glew.hft2build.h 以及整个freetype 库来获得win32 版本的cocos2d 所需的所有文件。

但是,Qt Creator 现在抱怨我正在为大多数 Cocos2d 对象定义 dllimport 静态字段。还有数以千计的警告说,在没有dllimport 属性的情况下重新声明了一堆对象。我没有接触过 Cocos2d 文件(除了我强制它使用 win32 的平台)。

我做错了什么(除了硬编码位)?

【问题讨论】:

  • dllimport 及其对应的dllexport 通常使用宏有条件地定义。您可能有条件 #define 未设置来选择使用哪一个。

标签: c++ qt-creator cocos2d-x


【解决方案1】:

我必须在 QtCreator 的项目菜单中定义 _WIN32_WINDOWS 作为 make 的附加参数以避免硬编码。我还必须定义CC_STATIC 以防止Cocos2d 在每个函数之前插入dllimportdllexport。我添加的论点是:

DEFINES+="_WIN32 _WINDOWS CC_STATIC"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2011-03-30
    • 1970-01-01
    相关资源
    最近更新 更多