1、编译器是gcc。需要在多种linux平台上运行,这些平台上自带的libstdc++.so可能差异较大。
2、但是我又想用C++20(新版本std带来的好处,不用就是暴殄天物?还有就是一部分代码来自MSVC,MSVC已经完全支持C++20),而不是限定在C++11或者C++14。
目前的想法是:
1、用gcc 11或者12,这样能支持大部分c++20特性。
2、如果和os目录下的libstdc++.so不兼容,那么在自己目录下自带一个libstdc++.so。
但这有个新的问题,libstdc++和os自带的libgcc的接口兼容问题。
为了避免这个问题,可以采用全部静态链接到libstdc++和libgcc,但同样有libgcc和os接口兼容的问题(虽然概率越来越小)。如果用-static全部静态链接,概率会增大,不可取。
大家在实践中怎么搞定这个问题的?还是说就用各目标平台能支持的C++11/14/17/20中最低的那个std完事?
--
修改:z16166 FROM 222.130.137.*
FROM 222.130.137.*