cmake

复制代码
    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
复制代码

 

posted @   panda_w  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示