zoukankan      html  css  js  c++  java
  • gcc 编译相关

    1、ubuntu 中添加编译链接库

      1)gcc 中 -L   -rpath_link  -rpath 选项

        -L                : “链接”的时候,去找的目录,所有 -lFOO 选项设置的库,都会先从 -L 指定的目录去找,然后是默认的地方。

                  -rpath_link   :指定链接时的搜索路径,运行时依赖 LD_LIBRARY_PATH。

                  -rpath           : 指定链接时搜索路径,并且此路径生成到了可执行文件中。

            2)export LD_LIBRARY_PATH

            3)  ldconfig

                 有时候,没有指定 -rpath ,也没有指定  LD_LIBRARY_PATH,可执行程序再运行时依然能找到对应的链接库,时由于ldconfig作用。

            ldconfig在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.

      缓存文件默认为  /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

    2、gcc/g++ 编译链接静态库报未定义函数错误

      一般情况是链接的静态库依赖于其它一些第三方库,需要添加这些第三方库的链接选项到当前的编译工程。

      编译A  ,链接静态库 B,静态库B依赖 第三方库C,A编译选项添加-lC

    3、关于多版本链接错误

      lcm/lib/liblcm.a(lcm_mpudpm.c.o): undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5'
    /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line

      如上错误,大致原因为多版本的libpthread 库造成的,错误提示未定义的'pthread_sigmask@@GLIBC_2.2.5',有两个方面,这个库是glib中的pthread,这边修改了

    cmake中target_link_libraries 链接库选项切换顺序,将-lglib-2.0 选项放在与此有冲突版本的前面。

    提前

     

      

  • 相关阅读:
    #背包方案 ——整数划分(Acwing900)
    #分组背包 #背包方案 ——Acwing 1013 机器分配
    #背包 #二进制优化 ——Acwing 5. 多重背包问题 II(二进制优化)
    #背包方案 AcWing 532. 货币系统
    #背包方案 ——AcWing 1021. 货币系统2
    背包问题求方案数
    有依赖的背包问题
    分组背包问题
    二维费用的背包问题
    混合背包问题
  • 原文地址:https://www.cnblogs.com/Forwarderz/p/13655878.html
Copyright © 2011-2022 走看看