分享

几个遇到的编译问题

 torony 2018-07-20
1. 前置声明
如果是一个结构,前置声明为class。
就会导致用这个结构的指针作为参数的函数链接失败,提示找不到该函数。

2.返回类型
函数的返回类型也会放到函数的修饰中,所以如果两个函数的名称和参数完全一样,但是返回值不一样,比如一个返回int,一个返回long,也会导致链接失败。

3.找不到 ?staticMetaObject@QtStringPropertyManager@@2UQMetaObject@@B
这个可以用depends walker看一下动态库,动态库里有导出,而且修饰完全一样。那这个问题的关键是引入QtStringPropertyManager类时,没有使用_declspec(dllimport),导致静态属性无法找到。原来dllimport是为了更好的处理类中的静态成员变量的,如果没有静态成员变量,那么这个__declspec(dllimport)无所谓
详细解释见:https://blog.csdn.net/u010055724/article/details/51538686

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多