美文网首页
二.cmake编译链接C文件,并且使用动态库

二.cmake编译链接C文件,并且使用动态库

作者: 真胖大海 | 来源:发表于2020-03-23 16:30 被阅读0次

    参考
    CMake 学习(一):使用链接第三方库

    一.总起

    编译链接C语言时需要指定

    1. 源文件
    2. 头文件
    3. 库文件(.a,.so,-dll)

    二.cmake指定源文件头文件的方式

    • include_directories 指定头文件所在目录
    • link_directories 指定库文件所在目录
    • add_executable()指定源文件所在目录
    • target_link_libraries 指定库文件,必须在add_executable()后面设置

    三.例子

    3.1 目录结构

    目录结构

    3.2 CMake的配置

    cmake_minimum_required(VERSION 3.12)
    
    project(learnH C)
    
    set(CMAKE_C_STANDARD 99)
    
    #指定头文件
    include_directories(include)
    
    #指定库的目录
    link_directories(lib)
    
    
    file(GLOB srcFile "src/*.c")
    file(GLOB libFile "lib/*.c")
    
    #指定c文件
    add_executable(learnH ${srcFile} ${libFile})
    
    #指定动态链接库
    target_link_libraries(${PROJECT_NAME} Hello)
    
    

    3.3生成可执行文件

    点击运行按钮,会在cmake-build-debug文件夹下生产可执行文件learnH
    输入命令./learnH 会报错

    dyld: Library not loaded: libHello.so
    Referenced from: cmake-build-debug/learnH
    Reason: image not found
    

    这是因为动态链接库libHello.so并没有在cmake-build-debug文件夹下,此时需要将libHello.so拷贝进该文件夹下即可

    相关文章

      网友评论

          本文标题:二.cmake编译链接C文件,并且使用动态库

          本文链接:https://www.haomeiwen.com/subject/mpuwdhtx.html