我打算编译一个静态库(mylib.a)和gcc 4.7.1。我想要利用C++ 11的优势,因此使用-std = C++ 11。我编译这个lib的平台是带有glibc-2.8的x86_64 SLES 11。在Linux上编译和链接不同版本的gcc
然后,我想将旧版平台上的静态库与旧版代码链接起来,因此我必须使用gcc 4.1.2来链接和编译旧版代码。所以在我的库头文件中,我不会使用任何C++ 11特定的代码。我也会链接来自gcc.4.7.1的libstdC++。a。我想要链接mylib.a,libstdC++。a(gcc4.7.1)和遗留目标文件的平台是带有glibc-2.4的x86_64 SLES 10。
我试着用mylib.a中的一些虚拟C++ 11代码(std :: async())来处理所有这些乱七八糟的事情。我认为这可能只是因为ELF的要求。我是否正确思考,或者ELF与它无关?如果mylib.a包含一些真正复杂的逻辑,我应该期待什么类型的错误?