zoukankan      html  css  js  c++  java
  • Linux环境下 动态库so 中全局变量冲突问题

         项目调试过程中遇到Linux环境下动态库so中全局变量相互冲突问题,问题具体描述如下:

    单个进程 A运行时需要加载两个动态库B.so与C.so ,这两个动态库均链接了静态库D.a。静态库

    D.a存在全局变量且只能初始化一次。进程A加载B.so 正常,加载C.so 提示D.a 初始化失败。

    失败的原因是C.so 使用B.so连接的D.a中全局变量。解决的办法是编译生成B.so与

    C.so 时加上编译 选项 -Wl,-Bsymbolic  Bsymbolic表示强制采用本地的全局变量定义,这样就

    不会出现动态链接库的全局变量定义被应用程序/动态链接库中的同名定义给覆盖了。

    如需交流可加QQ群766718184 ,1038388075或者QQ3501870

    视频下载地址:http://www.chungen90.com/?news_3/

     Demo下载地址: http://www.chungen90.com/?news_2

  • 相关阅读:
    子网划分详解
    USACO range
    USACO shopping
    USACO fence
    USACO Spinning Wheels
    USACO butter
    USACO msquare
    USACO Feed Ratios
    USACO Stringsobits
    USACO Factorials
  • 原文地址:https://www.cnblogs.com/wanggang123/p/12372233.html
Copyright © 2011-2022 走看看