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

C++ 来自一个项目的多个共享库,具有公共源文件,c++,qt,dll,shared-libraries,qt-creator,C++,Qt,Dll,Shared Libraries,Qt Creator,我有一个主应用程序,它可以由动态加载的插件(win-.so-linux上的dll)控制。现在我想创建很多插件,其中just-on函数的实现是不同的 假设我的项目中有以下文件: plugin.h plugin.cpp i001.cpp i001.cpp包含我的插件类的“run”函数的一个实现。现在这个项目编译成“plugin.dll” 我想要实现的是这样的目标: plugin.h+plugin.cpp+i001.cpp-->i001.dll plugin.h+plugin.cpp+i002.

我有一个主应用程序,它可以由动态加载的插件(win-.so-linux上的dll)控制。现在我想创建很多插件,其中just-on函数的实现是不同的

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

  • plugin.h
  • plugin.cpp
  • i001.cpp
i001.cpp包含我的插件类的“run”函数的一个实现。现在这个项目编译成“plugin.dll”

我想要实现的是这样的目标:

  • plugin.h+plugin.cpp+i001.cpp-->i001.dll
  • plugin.h+plugin.cpp+i002.cpp-->i002.dll
  • plugin.h+plugin.cpp+i003.cpp-->i003.dll
  • plugin.h+plugin.cpp+i004.cpp-->i004.dll
有没有一种简单的方法可以从一个项目中获得这些输出?
我在Windows和Linux上都使用Qt Creator。

有两种方法可以解决这个问题

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

  • 您可以创建.pri文件:

    SOURCES += plugin.cpp
    HEADERS += plugin.h
    
  • 并将其包含在所有.pro文件中:

    include(deployment.pri)