zoukankan      html  css  js  c++  java
  • gcc 库路径里同时有相同文件名的动态库和静态库

    找不到库的处理方案

    有两种方法:

    一、可以把当前路径加入 /etc/ld.so.conf中然后运行ldconfig,或者以当前路径为参数运行ldconfig(要有root权限才行)。

    二、把当前路径加入环境变量LD_LIBRARY_PATH中

    如何使用库
    gcc中关于库的参数有:
    -L  指定搜寻库的目录
          如指定当前目录 gcc -L .
    -l    指定要链接的库的名称
          加入库的名称是libmylib.a,则gcc -l mylib,即去头去尾。
    --static  组织在链接时使用动态库
    --shared 生成动态库
    --static-libgcc  链接静态libgcc库
    --shared-libgcc 链接动态libgcc库
     
    可见对动态库和静态库的使用方法是一样的,同一个库如果同时存在动态库和静态库,优先链接动态库,除非使用--static强制使用静态库。
     
    库标准路径下存在libABC.a和libABC.so使用gcc -lABC如何选择连接静态连接库或者动态连接库?通过--hare --static选项?
    如果在同一路径下面,并且两种库同名,这样会选择动态库。
     
    gcc 同时连接 静态库和动态库现在有 libmy.a & libmy.so两个库,其中的函数供main.cc调用要在可执行文件中同时连接这两个库gcc -g -lstdc++ -g -L. -lmy -l ./libmy.a -o test.exe main.cc // 报找不到libmy.a,可是在当前目录下已经有这个文件了gcc -g -lstdc++ -g -L. -l libmy.so -l ./libmy.a -o test.exe main.cc // 报找不到libmy.so,在当前目录下也有这个文件用了 -static 选线,则报动态库中的函数没定义请问大家有什么招不?
    我记得静态库混合动态库要加特殊指令的,你可以试试这样:gcc -g -lstdc++ -g -WI,-Bdynamic -L. -lmy -WI,-Bstatic -L. -lmy -o test.exe main.cc
     
     
  • 相关阅读:
    scrapy 多个爬虫运行
    scrapy不抓取重复的网页解决办法
    centos7 安装mysql
    20个免费和开源数据可视化工具
    转载 CSDN 谈谈我对证券公司一些部门的理解(前、中、后台)
    scrapy 教程
    django 常见错误汇总
    python 常见错误
    python 基础知识整理
    使用SQL语法来查询Elasticsearch:Elasticsearch-SQL插件
  • 原文地址:https://www.cnblogs.com/mydriverc/p/7345873.html
Copyright © 2011-2022 走看看