生成兼容的二进制,问题主要在API版本依赖和ABI,而不是编译器或所用语言版本。对运行环境那边考虑的是cpu体系结构,操作系统,ABI,库版本这些。你把这个事情考虑成交叉编译会清楚一些。
静态链接libgcc和libstdc++可以解决一部分问题,前者主要是gcc版本的差异,后者主要是c++标准库的差异。你依然可能遇到glibc的版本依赖问题(这和c++以及gcc版本都无关),第三方c++库的依赖问题,甚至系统内核版本问题。
省事的办法,比如docker,把整个依赖环境都带上;或者想办法全静态编译。
【 在 lwp 的大作中提到: 】
: 编译的时候用上-static-libgcc -static-libstdc++
:
: 把这两个东西都静态链进去,是不是就行了?
: ...................
--
FROM 114.254.10.*