ETH官方钱包

前往
大廳
主題

【CMake 學習筆記】add_library與target_include_directories

%%鼠 拒收病婿 | 2024-08-19 17:30:04 | 巴幣 2252 | 人氣 363

前言:


add_library

標記需要引用的lib檔案。通常只需寫.cxx或.cpp檔,因為.h檔案通成會被.c檔include。
add_library(LIB_NAME FILE1.cxx FILE2.cxx)

target_link_libraries

加入lib後要把它跟target file做link (寫在add_executable之後)才算完成。
....
add_library(MathFunctionsAA MathFunctions.cxx)
...
add_executable(
Tutorial main.cxx)
target_link_libraries(Tutorial PUBLIC MathFunctionsAA)

target_include_directories

指定include的folder,開VS來看可以看到設定的include路徑。

使用範例:
cmake_minimum_required(VERSION 3.10)
project(MyProject)

add_library(mylib STATIC mylib.cpp)

# Specify the include directory for the library
target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)

add_executable(MyApp main.cpp)

# Link the executable to the library
target_link_libraries(MyApp PRIVATE mylib)

target_include_directories vs target_link_libraries

  • target_link_libraries加入指定的lib,該lib須先用add_library加進來,並作用於linking stage。
  • target_include_directories 加入指定include位置,作用於compilation stage。
用法差異:
# Links libraries to a target
target_link_libraries(TARGET_NAME PUBLIC LIB_NAME)
# 加入數個include 路徑
target_include_directories(TARGET_NAME PUBLIC
                          "PATH1"
                          "PATH2"
                          )


Library 與 Include的差異

  • Include:告訴compiler可以在哪裡找到定義(header)。
  • Lib: 存放pre-compiled的code,提供方法的實作(implementation)。


送禮物贊助創作者 !
0
留言

創作回應

內心的吶喊
2024-08-19 18:16:14
追蹤 創作集

作者相關創作

更多創作