• 翻译QT使用手册:将库添加到项目


    将库添加到项目

    除了 Qt 库之外,您还可以将其他库添加到您的项目中。该过程取决于图书馆的类型和位置。您可以添加系统库、您自己的库或第三方库。该库可以位于当前项目的构建树中,也可以位于另一个构建树中。

     

    将库添加到项目

    除了 Qt 库之外,您还可以将其他库添加到您的项目中。该过程取决于图书馆的类型和位置。您可以添加系统库、您自己的库或第三方库。该库可以位于当前项目的构建树中,也可以位于另一个构建树中。

    因为系统库通常不会更改并且通常默认找到,所以在添加库时不需要指定库路径或包含库的路径。您可以pkg-config在编译期间用于查询系统库。

    对于您自己的库和第三方库,您需要指定路径。Qt Creator 尝试猜测外部库的包含路径,但您需要检查它并在必要时修改它。Qt Creator 自动添加内部库的包含路径。

    对于所有库,选择应用程序、库或插件的目标平台。

    指定库是静态链接还是动态链接。对于静态链接的内部库,Qt Creator在项目文件中添加依赖项(使用 CMake 时为 target_link_libraries 或使用qmake 时为PRE_TARGETDEPS )。

    根据开发平台的不同,Qt Creator 可能会自动检测某些选项。例如,在 macOS 上,它会自动检测库类型(LibraryFramework)并隐藏该选项。但是,如果您在 macOS 以外的其他平台上开发并希望为 macOS 构建项目,则必须指定库类型。

    Windows 上的默认约定是库的调试版本和发布版本具有相同的名称,但放在不同的子目录中,通常称为debugrelease。如果库路径不包含这些文件夹中的任何一个,则无法选择将库放在单独文件夹中的选项。

    或者,可以将字母d添加到调试版本的库名称中。例如,如果发布版本称为 example.lib,则调试版本称为 example.lib。您可以指定为调试版本添加该字母,为发布版本删除该字母。如果库名称以d结尾,请取消选择Remove "d" suffix for release version选项。

    一旦您的项目成功构建并链接到它们,Qt Creator 就支持添加库的代码完成和语法突出显示。

     

    添加库

    1. Projects视图中,右键单击项目名称以打开上下文菜单并选择Add Library
    2. 按照向导的说明进行操作。

    有关项目文件设置的更多信息,请参阅声明其他库

    添加内部库的示例

    将内部库添加到您的项目:

    1. 选择文件>新建项目>C++ 库
    2. 选择“选择”以打开“项目位置”对话框。
    3. 名称字段中,为库命名。例如,mylib
    4. 按照向导的说明进行操作,直到进入“项目管理”对话框。在作为子项目添加到项目列表中,选择一个项目。例如,我的应用程序
    5. Projects视图中,右键单击项目名称以打开上下文菜单并选择Add Library > Internal Library > Next
    6. Library字段中,选择mylib,然后选择Next
    7. 选择完成将库声明添加到项目文件中。

    使用 CMake 时,将target_link_libraries命令添加到 CMakeLists.txt 文件中:

    target_link_libraries(myapp PRIVATE mylib)

    使用 qmake 时,在 .pro 文件中添加以下库声明:

    1. win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib
    2. else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/debug/ -lmylib
    3. else:unix: LIBS += -L$$OUT_PWD/../../../projects/mylib/ -lmylib
    4. INCLUDEPATH += $$PWD/../../../projects/mylib
    5. DEPENDPATH += $$PWD/../../../projects/mylib
    6. win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/release/mylib.lib
    7. else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/debug/mylib.lib
    8. else:unix: PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/libmylib.a

    声明,仅仅翻译,版权归QT官方。

  • 相关阅读:
    Jenkins清理构建(自动)
    Go 处理粘包拆包
    [NewStarCTF 2023 公开赛道]R!C!E!
    django学习入门系列之第二点《浏览器能识别的标签3》
    力扣第1035题 不相交的线中等 c++ (最长公共子序列) 动态规划 附Java代码
    基于springboot+vue+爬虫实现电影推荐系统
    H5游戏源码分享-网页版2048小游戏
    计算机组成原理---第四章指令系统---指令格式
    农产品果蔬商城交易系统(Java+Web+MySQL)
    二刷力扣--数组
  • 原文地址:https://blog.csdn.net/thanklife/article/details/128093241