簡體   English   中英

CMake header 文件,其中包括來自其他目錄的 header 文件

[英]CMake header file that includes header files from other directory

鑒於這棵樹:

project
 + lib
    + include
        + include_both.h
    + source
        + file1.cpp
        + file1.h
        + file2.cpp
        + file2.h
 + main_dir
    + main.cpp

使用 CMake 將lib鏈接到main_dir后,我希望 header 文件 file1.h 和 file2.h 在 main.cpp 中不可見。 我希望該庫只能由 include_both.h header 文件包含。 如何做到這一點,我什至應該這樣做嗎?

您可以嘗試將include目錄設為PUBLIC目錄,以便庫的使用者可以看到它,但請保持source目錄為私有:

add_library(MyLib SHARED 
    source/file1.cpp
    source/file2.cpp
)

target_include_directories(MyLib 
    PUBLIC  include
    PRIVATE source
)

暫無
暫無

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

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