Несколько общих библиотек из одного проекта с общими исходными файлами

У меня есть основное приложение, которым можно управлять динамически загружаемыми плагинами (.dll на win -.so на linux). Теперь я хочу создать много этих плагинов, где просто по-разному реализована функция.

Допустим, у меня есть следующие файлы в моем проекте:

  • 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

Есть ли простой способ получить эти результаты из одного проекта? Я использую Qt-Creator на Windows и Linux.

1 ответ

Решение

Есть два способа решения проблемы.

  1. Вы должны использовать подпроекты. Распакуйте ваши общие исходные файлы в отдельный подпроект как статическую библиотеку. Больше информации здесь

  2. Вы можете создать.pri файл:

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

и включите его во все файлы.pro:

include(deployment.pri)
Другие вопросы по тегам