Linker 两个共享库(具有一些相同的源代码)不能同时加载? 开发工具:Sun Studio 11 标志:CXXFLAGS=-O2-g

Linker 两个共享库(具有一些相同的源代码)不能同时加载? 开发工具:Sun Studio 11 标志:CXXFLAGS=-O2-g,linker,shared,loader,Linker,Shared,Loader,我有两个共享库libA.so libB.so: /A/root.cpp/A/A.cpp用于生成libA.so /B/root.cpp/B/B.cpp用于生成libB.so /A/root.cpp和/B/root.cpp是可识别的 libA.so和libB.so将在主程序运行期间动态加载 加载libA.so然后加载libB.so时,libB.so将打印以下调试信息: /B/B.cpp:。。。。。 /A/root.cpp: 加载libB.so然后加载libA.so时,libA.so将打印以下调试信息

我有两个共享库libA.so libB.so:

/A/root.cpp/A/A.cpp用于生成libA.so /B/root.cpp/B/B.cpp用于生成libB.so /A/root.cpp和/B/root.cpp是可识别的 libA.so和libB.so将在主程序运行期间动态加载

加载libA.so然后加载libB.so时,libB.so将打印以下调试信息: /B/B.cpp:。。。。。 /A/root.cpp:

加载libB.so然后加载libA.so时,libA.so将打印以下调试信息:

/A/a.cpp : .....
/B/root.cpp : ...

为什么?

如果试图静态编译此文件,链接器会抱怨多个定义。看起来加载程序已经被搞糊涂了,正试图优雅地失败