项目构建工具 - CMake (2)查找 3rd library

    技术2022-07-11  80

    问题:

    入手方向1:

    make VERBOSE=1,打印出编译细节。

    ->

    cd /xx/build/src/service && /usr/bin/cmake -E cmake_link_script CMakeFiles/Demo.dir/link.txt --verbose=1

    cmake -E cmake_link_script : 执行命令cmake_link_script

    入手方向2:

    debug cmake执行过程,显示cmake执行细节:

    rm * -rf;cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain.cmake ../ --debug-output

     

    解读CMakeLists.txt 

    调试cmake命令:cmake -P 脚本文件

    find_package作用 https://www.jianshu.com/p/39fc5e548310

               find_package, add_subdirectory: 会隐含将包含其他cmake中内容

    set_target_properties作用:

    set_target_properties(target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ...)

    分析cmake的作用:

    解决方案

    方案1:重新制作库文件(第三方独立库)

    参考:https://cmake.org/cmake/help/v3.5/command/add_library.html

    见附件

     

    方案2:

    在toolchain.cmake中指定3rd party库的路径

    SET(ENV{LDFLAGS} "$ENV{LDFLAGS} -L/home/t1/lib/aarch64-linux-gnu")

    /home/t1/lib/aarch64-linux-gnu路径下面有该3rd party库

     

    说明:

    1,CMakeLists.txt中添加

    set(CMAKE_INCLUDE_PATH "include_path")

    set(CMAKE_LIBRARY_PATH "lib_path")

    不起作用

     

    2, 下面这个方式,没有验证过。

    export CMAKE_INCLUDE_PATH=xxx export CMAKE_LIBRARY_PATH=yyy

     

    Processed: 0.011, SQL: 9