include_directories
相当于 gcc 选项中的 -I 参数,也相当于环境变量中 C_INCLUDE_PATH 和 CPLUS_INCLUDE_PATH 的作用。
include_directories("/usr/include/SDL2")
set(MY_INCLUDE /usr/include/SDL2)
include_directories(${
MY_INCLUDE})
find_package(SDL2 REQUIRED)
include_directories(${
SDL2_INCLUDE_DIRS})
link_directories
相当于 gcc 选项中的 -L 参数,也相当于环境变量中 LIBRARY_PATH 的作用。
link_directories("/usr/local/lib")
set(MY_LIBRARY /usr/local/lib)
link_directories(${
MY_LIBRARY})
link_libraries
指明库的全路径,包括库名
- 用在 add_executable 之前
- 好像用来链接静态库
- 好像已经被废弃了,现在用 target_link_libraries
target_link_libraries
相当于 gcc 选项中 -lm -lpthread -lSDL2 等参数,用于链接动态库
- 用在 add_executable 之后
- 用来链接动态库
target_link_libraries(myplay SDL2)
target_link_libraries(myplay -lSDL2)
target_link_libraries(myplay libSDL2-2.0.so.0)
target_link_libraries(myplay /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0)
target_link_libraries(myplay
${
OpenCV_LIBS}
-lavcodec
-lavdevice
-lavfilter
-lavformat
-lavutil
-lswresample
-lswscale
-lm
-lSDL2
)