Date: 2017/9/24
问题:在动态库中含有全局变量A,在应用程序中也使用了全局变量A,这个时候在应用程序中修改全局变量A的时候也会修改动态库中的A。如何不修改呢?
在创建动态链接库时,gcc/g++选项中添加编译选项:
-Wl,-Bsymbolic
其中Wl表示将紧跟其后的参数,传递给连接器ld。Bsymbolic表示强制采用本地的全局变量定义,这样就不会出现动态链接库的全局变量定义被应用程序/动态链接库中的同名定义给覆盖了!
问题:在动态库中含有全局变量A,在应用程序中也使用了全局变量A,这个时候在应用程序中修改全局变量A的时候也会修改动态库中的A。如何不修改呢?
在创建动态链接库时,gcc/g++选项中添加编译选项:
-Wl,-Bsymbolic
其中Wl表示将紧跟其后的参数,传递给连接器ld。Bsymbolic表示强制采用本地的全局变量定义,这样就不会出现动态链接库的全局变量定义被应用程序/动态链接库中的同名定义给覆盖了!