我打算編譯一個靜態庫(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包含一些真正複雜的邏輯,我應該期待什麼類型的錯誤?