链接静态Qt库到c程序
Link static Qt library to c program
我需要链接到一个库(我自己用Qt写的)。当然,这会产生(不管extern "C"
和名称混淆的东西)在链接期间,由于c++的依赖(stdc++ 和 Qt)很多错误。
所以我有一个想法,但我不确定,如果我错过了什么,或者如果方法是一个现实的解决方案:
搜索关于这个主题的一些提示,我发现了一篇关于构建静态Qt的文章。没有详细阅读它的所有内容,我认为解决方案可能是静态编译Qt,然后将我的应用程序链接到这个静态Qt版本。在我看来,这应该导致一个成功的构建,因为以下原因:
-
用静态Qt库(再次作为静态库)构建我的Qt库将解决所有依赖关系,因为它们都在静态库存档中。
-
由于c应用程序将访问
extern "C"
接口函数,c编译器(和链接器)也将看到所有依赖项都解决了,这里也没有问题。
现在在尝试静态构建Qt的累人步骤之前,我想知道,这种方法是否可以解决问题。
编辑1:另一种解决方案是在应用程序的Qt和c部分之上实现一个服务器-客户机体系结构,并让它们以这种方式相互通信。
编辑2:最好的解决方案可能是两者都不选。相反,我只是写了一个动态链接的边界(根据Laszlo Papp和dsu的建议),一切都很好。
现在,在尝试静态构建Qt的累人步骤之前,我想知道,这种方法是否可以解决问题。
根据你提到的成为Digia的商业客户是一个问题的评论,我想说不。
静态链接不能发生在专有软件上,根据你的评论,你的项目不是开源的。
也就是说,你似乎无论如何都有自己的包装器,而且Qt对给定的主要版本保持二进制兼容性,其生命周期通常是几年,所以我个人倾向于动态链接和某种绑定。
相关文章:
- 使用调试/崩溃报告将应用程序部署到客户端
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 如何从Windows应用程序输出到标准?
- 如何从 Win32 C++ 应用程序输出到父控制台窗口?
- 将 Win32/WinAPI 应用程序移植到 wxWidgets
- 如何将独立的 c 应用程序组合到 c++ 应用程序中?
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- win 表单应用程序字符串^ 到 int
- 某些 boost::asio 异步函数是否将处理程序连接到操作,以便处理程序被触发一次?
- 如何将我的程序添加到文件和文件夹的macOS右键单击菜单?
- 从 MFC C++ 6.0 应用程序迁移到 VS 2005
- 将数据从C++程序发布到弹性搜索
- 将函数从控制台应用程序移动到共享库项目似乎会带来不相关的编译错误
- C#库到本机C++应用程序
- 我如何使用cmake链接两个库到我的程序
- 如何将c++程序编译到要导入Python的共享库中
- 限制Android NDK库到特定的应用程序
- 附加一个库到应用程序
- 将wxwidgets opengl应用程序移植到不依赖库的应用程序
- 链接静态Qt库到c程序