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

时间:2015-12-23 09:46:47

标签: c++ qt dll shared-libraries qt-creator

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

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

  • 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。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

    include(deployment.pri)