CMAKE-入门篇(一)

MirrorCore / 2023-05-09 / 原文

路过的四海朋友大家好:
言哥倾囊相授软件工程高频常用17条cmake金句如下:

  1. cmake_minimum_required(VERSION 3.2) //cmake最低版本要求
  2. set(CMAKE_VERBOSE_MAKEFILE on) //启用Makefile构建过程中的详细输出。
  3. include(GNUInstallDirs) //使用 GNUInstallDirs.cmake 定义目标安装的标准位置,具体位置:./sysroots/aarch64-poky-linux/usr/share/cmake-3.14/Modules/GNUInstallDirs.cmake
  4. find_package(ara-exec REQUIRED)//查找相应的库,同时让对应的变量生效 cmake位置,库位置:./sysroots/aarch64-poky-linux/usr/lib/cmake/ara-exec/ara-exec-config.cmake
  5. add_definitions(-DHAS_VSOMEIP_BINDING) //设置HAS_VSOMEIP_BINDING编译参数
  6. set(APP_NAME blower_server) //设置APP名字
  7. LIST(APPEND ARA_LIBRARIES socket) //在变量中增加socket
  8. file(GLOB_RECURSE aragen_srcs ${GEN_DEST}/*.cpp) //GLOB_RECURSE遍历匹配目录的所有文件以及子目录下面的文件将其保存到变量aragen_srcs。
  9. include_directories(\({GEN_DEST}/\){APP_NAME}/includes) //将指定目录添加到编译器的头文件搜索路径之下,指定的目录被解释成当前源码路径的相对路径。
  10. message(STATUS "GEN_DEST_PATH: ${GEN_DEST}")//相当于debug打印
  11. set(CMAKE_CXX_STANDARD 14) //设置C++标准是c++14
  12. aux_source_directory(libs/jsoncpp LIBS_JSONCPP) //查找在libs/jsoncpp路径下的所有源文件,并保存在LIBS_JSONCPP变量中
  13. link_directories(${Boost_LIBRARY_DIRS}) //添加库文件目录,相当于添加环境变量路径作用
  14. add_executable(blower_server ${ALL_COMPILE_SRC}) //先指定可执行文件,再连接相应的库
  15. target_link_libraries(blower_server ${CMAKE_THREAD_LIBS_INIT} ${ARA_LIBRARIES} ${ARAEXEC_LIBRARIES} ${ADAPTIVEPLATFORM_LIBRARIES})
  16. install(TARGETS blower_server RUNTIME DESTINATION opt/blower_server/bin)//RUNTIME 特指可执行目标二进制
  17. install(DIRECTORY //将生成的文件拷贝到opt文件夹中
    ${MANIFESTDIR}/blower_server
    DESTINATION opt
    )

看到这里,如果上述内容对你有益,请点赞、收藏加关注、留言评论,谢谢。