chi*_*uba 0 c++ qt shared-libraries
我正在尝试将我的一些代码分开并将其放在一个共享库中,我可以在其他地方使用它.在文档中:
http://doc.qt.io/archives/qt-4.7/sharedlibrary.html
他们说你无法链接到其他头文件.我如何能够将共享标头包含到我的共享库中?
您提供的链接中讨论的上下文中的共享库是.so(共享对象)文件(.dll,动态链接库,在Windows上)或静态(.lib)库.Qt提供这种库; 许多其他供应商/项目也是如此.要在其他应用程序(例如您的应用程序)中使用它们,请在库中包含标题和链接.
文章警告的是#include用户可能没有的头文件 - 即那些不属于您项目的头文件.请记住,对于其他人使用新的"共享库",他们需要包含您提供的头文件.如果该文件包含他们没有的其他标头,则会出现错误.
要避免此问题,请#include在实现(.cpp)文件中执行此操作; 这样,它们对未来的用户是隐藏的.Qt推荐"指向实现的指针"(pimpl)习惯用法 - 所有实现细节都隐藏在类的用户中,包括实现所依赖的任何和所有头文件.
你可以很容易地做同样的事情,即使你没有全力以赴.目标是#include在您的标题中只包含绝对必需的文件,希望您提供的所有文件都在您的库中.