项目和库的单一QMake

问题描述 投票:0回答:1

我有一个创建可执行文件的 Qt5/C++ (Linux) 项目。现在,作为这个项目的一部分,我计划创建许多动态加载的库文件。 (可能有 100 个这样的图书馆)例如,每种动物一个图书馆。

我应该为每只动物创建一个单独的项目,例如一个用于创建 dog.so 的项目吗? (或任何 QLibrary 创建的)所以我必须在分发我的应用程序之前创建和编译 100 个项目?

或者,这些应该成为主项目/Qmake 文件的一部分吗?我不确定如何处理这个问题,但我知道每只动物一个项目感觉不对。

qt shared-libraries qmake
1个回答
1
投票

为每个动物图书馆创建一个单独的项目将是一种乏味且不切实际的方法。相反,最好将所有动物库包含在同一个项目中,并通过主项目/Qmake 文件管理它们。

为此,您可以为每个动物库创建一个单独的子目录,并将每个库的源文件放在其对应的子目录中。然后,使用 SUBDIRS 变量将子目录添加到主项目文件(.pro 文件)。

这是您的 .pro 文件的示例:

TEMPLATE = app

# List all the subdirectories for the animal libraries
SUBDIRS += \
    dog \
    cat \
    bird \
    ...

# Include any other necessary files and libraries
INCLUDEPATH += ...
LIBS += ...

# Specify any necessary build options
QMAKE_CXXFLAGS += ...
QMAKE_LFLAGS += ...

# Specify the output directory for the libraries
LIBS += -L$$PWD/libs

# Specify the names of the libraries to be built
dog.files = $$PWD/libs/libdog.so
cat.files = $$PWD/libs/libcat.so
bird.files = $$PWD/libs/libbird.so
...


使用这种方法,您可以通过运行 qmake 和 make 的单个命令构建所有动物库。生成的库文件将放在指定的输出目录中(例如 libs/),并且可以在运行时由您的主应用程序动态加载。

总的来说,这种方法允许您在一个项目文件中管理所有动物库,并使构建和分发您的应用程序变得更加容易。

© www.soinside.com 2019 - 2024. All rights reserved.