C++;使用较新的编译器构建应用程序,而无需重建库 我有一个C++程序,它使用几个库。 我使用gcc版本4构建应用程序和库。 这些库被构建为静态库,头文件和libX.a文件被添加到项目中。 我是否可以使用较新的gcc(例如gcc 7)构建我的应用程序,而无需重新构建库? 如果我尝试使用较新的gcc构建并成功,这是否意味着我以后不会遇到任何与此相关的意外问题?

C++;使用较新的编译器构建应用程序,而无需重建库 我有一个C++程序,它使用几个库。 我使用gcc版本4构建应用程序和库。 这些库被构建为静态库,头文件和libX.a文件被添加到项目中。 我是否可以使用较新的gcc(例如gcc 7)构建我的应用程序,而无需重新构建库? 如果我尝试使用较新的gcc构建并成功,这是否意味着我以后不会遇到任何与此相关的意外问题?,c++,gcc,linker,C++,Gcc,Linker,如评论中所述,在执行如此重大的编译器升级时,您应该重新编译所有内容 成功链接并不保证在运行时不会出现问题。这是由于GCC版本之间的ABI不兼容造成的。你可能会幸运,但从长远来看,这是你不能依赖的 您可以尝试使用,通过查找自中编译库以来发生的更改,使编译后的文件与旧库兼容,但我认为这不值得。如果您要跳过编译器的3个主要版本,您肯定应该重建所有内容。不,这根本不意味着这一点。

如评论中所述,在执行如此重大的编译器升级时,您应该重新编译所有内容

成功链接并不保证在运行时不会出现问题。这是由于GCC版本之间的ABI不兼容造成的。你可能会幸运,但从长远来看,这是你不能依赖的


您可以尝试使用,通过查找自中编译库以来发生的更改,使编译后的文件与旧库兼容,但我认为这不值得。如果您要跳过编译器的3个主要版本,您肯定应该重建所有内容。不,这根本不意味着这一点。