Windows中的动态库链接问题

时间:2012-05-24 14:18:50

标签: c++ linker qt4 dllexport

我有一个Windows动态库的问题。我使用Qt / C ++在Linux中编写了一个共享的小部件库。一切都很好,我可以将每个应用程序链接到我的库。但在Windows中,相同的代码编译,但任何应用程序都无法使用它。我收到很多undefined reference to ...类型的链接器错误,这些错误都在库中实现。

我发现在Windows中,默认情况下代码符号表不会导出为二进制。我必须指定我想在最终的dll中看到哪个函数。但我无法找到办法做到这一点。

按照this条提示,我将Q_DECL_EXPORT添加到所有类声明中。但它对我不起作用。

1 个答案:

答案 0 :(得分:2)

您应该在类声明中添加MYSHAREDLIB_EXPORT,而不是Q_DECL_EXPORT。也可以从您提供的链接中进行相应的定义。

如果添加Q_DECL_EXPORT,则告诉编译器在包含标题的每个模块中为该类生成代码,而不是期望将类导出到另一个库中。