欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

对C++库链接的认识

发布时间:2023/12/9 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 对C++库链接的认识 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 疑惑

  • 编译所依赖的头文件怎么目录怎么指定?
  • 链接时必须给出动态文件还是只给定动态文件所在的目录就可以
  • 2. 准备

    生成库文件libsayhello.so

    sayhello.cpp

    #include <iostream> using namespace std;void sayhello() {cout << "Hello!" << endl; }

    CMakeLists.txt

    cmake_minimum_required(VERSION 2.8) project(SAYHELLO)add_library(sayhello SHARED sayhello.cpp)

    会生成一个libsayhello.so文件,将该文件任意文件夹中

    3. 实验

    main.cpp

    #include <iostream> using namespace std;void sayhello() {cout << "Hello!" << endl; }

    sayhello.h

    #ifndef __SAYHELLO_H__ #define __SAYHELLO_H__void sayhello();#endif

    CMakeLists.txt

    cmake_minimum_required(VERSION 2.8) project(SAYHELLO)# add_library(sayhello SHARED sayhello.cpp)include_directories(/home/lzf/slam/testso) # 添加文件路径# link_directories(/home/lzf/slam/testso/lib) # 添加库文件的路径,后面需要将库链接到可执行文件上link_libraries(/home/lzf/slam/testso/lib/libsayhello.so) # 链接编译所需要的动态文件add_executable(test main.cpp) # target_link_libraries(test sayhello) # 将库链接到可执行文件上# target_link_libraries(test /home/lzf/slam/testso/lib/libsayhello.so) # 或者不添加路径直接将文件链接到可执行文件上

    4. 结果

  • 用include_directories()来指定头文件的路径
  • 必须给出动态文件还是只给定动态文件所在的目录会报错
  • 链接库的三种方法
    (1) link_directories + target_link_libraries
    (2) link_libraries
    (3) target_link_libraries
  • 总结

    以上是生活随笔为你收集整理的对C++库链接的认识的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。