簡體   English   中英

cmake 與 Qt 共享庫

[英]cmake shared lib with Qt

我使用 QtCreator v6.0.1 創建了兩個默認項目:MyApp 和 MyLib for Linux(Ubuntu)。 我將文件夾結構更改為

MyApp
├──build
│   ├──Debug
|   └──Release
├──src
├──libs
|   └──MyLib
|        ├──build
|        ├──src
|        ├──include
|        └──CMakeLists.txt
├──include
├──src
└──CMakeLists.txt

我需要對 CMakeLists.txt 進行哪些更改才能使 MyLib 作為共享庫並在 MyApp 中使用它?

首先,如前所述,您需要在頂級 CMakeLists.txt 中使用add_subdirectory添加MyLib目錄:

    ...
    add_subdirectory(libs/MyLib)
    ...

然后,使用 CMake 定義共享/動態庫非常簡單。 您使用add_library提供庫的名稱、源文件和一些標志。 默認情況下,它將創建一個 static 庫,但使用關鍵字SHARED您可以更改它:

    add_library(MyLib SHARED
                MySource1.cpp
                MySource2.cpp
                ...
                )

看看這里: https://cmake.org/cmake/help/latest/command/add_library.html

順便說一句,所有生成的代碼(包括庫)都將在唯一的構建目錄中結束(您可以使用cmake -B $BUILD_DIR指定,或者是運行 cmake 的工作目錄)。 因此,您的 libs/MyLib 文件夾中不會再有一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM