首页 > 其他分享 >cmake

cmake

时间:2024-12-12 14:34:20浏览次数:3  
标签:cmake target add link my name

    cmake
1.安装编译:
    1.    sudo apt-get update
        sudo apt install cmake
        注意:此种方式安装的可能不是最新版本的CMake
    2.    CMake源码下载地址:https://cmake.org/download/
        tar -zxvf cmake-3.29.0.tar.gz
        (sudo apt-get install g++   sudo apt-get install libssl-dev)
        ./bootstrap
        make
        sudo make install
    3.cmake --version
    4.cmake PATH :生成Makefile
    5.make :编译
    
2. 配置文件:
    1.CMakeLists.txt
        1. cmake_minimum_required:指定CMake最低版本号
            cmake_minimum_required(VERSION 3.8.2)
            
        2. project:项目名称
            project(demo)
            
        3. include_directories:指定头文件搜索路径
            include_directories(directory1 directory2 ...)
            
        4. add_subdirectory:当前CMakeLists.txt中添加子目录CMakeLists.txt文件到项目构建中
            add_subdirectory(dir1)
            
        5. aux_source_directory:将目录中所有源文件添加到项目构建规则的变量
            aux_source_directory(dir VARIABLE)
            aux_source_directory(. FILE_SRCS)
            
        6. add_library:生成链接库,默认为 STATIC。
            add_library(dir1lib ${DIR_LIB_SRCS})
            #创建名为 my_lib 的静态库,包含两个源文件
            add_library(my_lib STATIC source1.cpp source2.cpp)
            #创建名为 my_shared_lib 的共享库,包含一个源文件
            add_library(my_shared_lib SHARED source3.cpp)
            #创建名为 my_module 的模块库,包含一个源文件
            add_library(my_module MODULE source4.cpp)
            
        7. add_executable:指定生成目标
            add_executable(executable_name source1 [source2 ...])
            add_executable(app test.cpp   test1.cpp)
            add_executable(app ${FILE_SRCS})
            
        8. link_directories:查找链接库文件目录
            link_directories(directory1 directory2 ...)

        9. target_link_libraries:程序链接库,可执行文件、静态库、动态库等
            target_link_libraries(app dir1lib)
            #指定可执行文件 target_name 需要链接的库
            target_link_libraries(target_name library1 library2)
            #指定目标 target_name 需要链接的另一个 CMake 目标
            target_link_libraries(target_name other_target)
            #指定目标 target_name 需要链接的库文件路径
            target_link_libraries(target_name /path/to/library/liblibrary.a)
            
            
        10. message:输出消息到标准输出流
            message([<mode>] "message to display" ...)
        
        
        11.set:创建、设置、修改、删除变量值
            set(<variable> <value>... [CACHE <type> <docstring> [FORCE]])
            set(my_variable "Hello, World!")
            
        
        
        
        
        
        
        
        
        
        
        
        
        
        


https://blog.csdn.net/jidushanbojueA/article/details/136819238?spm=1001.2014.3001.5502

 

标签:cmake,target,add,link,my,name
From: https://www.cnblogs.com/panda-w/p/18602374

相关文章

  • c++ CMakeLists.txt详解
    基本结构CMake最低版本声明用于指定需要的最低CMake版本,确保兼容性。cmake_minimum_required(VERSION3.10)指定CMake的最低版本。确保用户的CMake版本符合项目需求,否则报错。版本选择建议根据项目使用的功能决定。例如,3.10引入了target_link_directories。......
  • cmake 中一些技巧
    以下内容是工作中遇到的一些cmake特殊使用技巧递归获取目录中所有c文件file(GLOB_RECURSEc_files"${CMAKE_SOURCE_DIR}/xxx/*.c")add_library(xxxlib,${c_files})非递归获取目录中所有c文件set(ProjectSourceFiles)file(GLOBc_files"${CMAKE_SOURCE_DIR}/xxx/*......
  • 在cmake中移动文件夹
    1.使用file命令拷贝后删除源文件file(COPY${SOURCE_FILE}DESTINATION${DESTINATION_FILE})file(REMOVE${SOURCE_FILE})2.使用系统的移动命令execute_process(COMMAND${CMAKE_COMMAND}-Erename${SOURCE_FILE}${DESTINATION_FILE})或execute_process(CO......
  • CMake学习2024.12.7问AI的问题记录
    iwtbf:target_include_directories(&{PROJECT_BINARY_DIR})是什么GitHubCopilot:target_include_directories是CMake中的一个命令,用于为目标添加包含目录。&{PROJECT_BINARY_DIR}是一个变量,表示项目的二进制目录。语法如下:target_include_directories(<target>[SYSTEM......
  • CMakeTutorial_Step1_CMakeLists.txt
    #TODO1:SettheminimumrequiredversionofCMaketobe3.10cmake_minimum_required(VERSION3.10)#TODO2:CreateaprojectnamedTutorialproject(TutorialVERSION1.0)#TODO7:Settheprojectversionnumberas1.0intheaboveprojectcommand#Wh......
  • CMake安装
    CMake安装(编译源码)下载源码:wgethttps://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.0.tar.gz解压源码:tar-xzvfcmake-3.22.0.tar.gz编译和安装:cdcmake-3.22.0./bootstrapmakesudomakeinstall检查路径查看当前版本路径:which......
  • vs2012 cmake dll工程 调试dll launch.vs.json 附加到进程
    在VisualStudio中,当你有一个DLL项目并且想要附加调试这个DLL时,你需要指定宿主应用程序(在这个例子中是bt.exe),因为DLL本身不是独立可执行的。以下是如何配置launch.vs.json文件以便附加到bt.exe并调试limit-ml-model.dll的步骤:确定宿主应用程序(bt.exe)的路径:你需要知道bt.exe的......
  • CMakeLists.txt自动添加cpp文件
    问题描述使用Clion编译器写C++时,一整个项目内仅只能包含一个main函数。当我们只是想练习C++语言时,想在在同一个项目里写多个样例,这时需要我们手动去配置CmakeLists.txt。每次都去配置会比较麻烦,因此希望有自动化脚本。当我们在同一个项目中添加新的源文件时,自动在CmakeLists.txt......
  • ubuntu18.04 升级cmake
    在安装fastdds的过程中,编译时报错,发现是cmake版本过低。1,查看当前版本cmakecmake--version结果如下:/usr/local/share/cmake-3.10cmakeversion3.10.2ubuntu18貌似默认cmake版本时3.10,而安装fastdds需要3.16及以上的版本,因此选择源码编译升级cmake到最新的3.24版本2,......
  • [C++][CMake][Error] set_target_properties called with incorrect number of argume
    1简介这篇文章将探讨了在使用CMake构建C++项目时,调用set_target_properties函数时参数数量不正确所引发的问题。2错误案例以下为可能发生错误的案例include_directories(${CMAKE_SOURCE_DIR}/common)find_package(Threads)add_library(libusbmuxdSHAREDlibusbm......