add_library
add_library(LIB_NAME FILE1.cxx FILE2.cxx) |
target_link_libraries
.... add_library(MathFunctionsAA MathFunctions.cxx) ... add_executable(Tutorial main.cxx) target_link_libraries(Tutorial PUBLIC MathFunctionsAA) |
target_include_directories

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)。