来自具有公共源文件的一个项目的多个共享库

multiple shared libraries from one project with common source files

我有一个可以通过动态加载的插件控制的主应用程序(win 上的 .dll - linux 上的 .so)。现在我想创建很多这样的插件,只是功能实现不同。

假设我的项目中有以下文件:

i001.cpp 包含我的插件 class 的 "run" 功能的一种实现。现在这个项目编译为 "plugin.dll".

我想要实现的是这样的:

有没有一种简单的方法可以从一个项目中获得这些输出? 我在 Windows 和 Linux 上都使用 Qt-Creator。

有两种方法可以解决问题。

  1. 您应该使用子项目。将您的公共源文件提取到单独的子项目中作为静态库。更多信息 here

  2. 您可以创建 .pri 文件:

    SOURCES += plugin.cpp
    HEADERS += plugin.h
    

并将其包含在所有 .pro 文件中:

include(deployment.pri)