我有两个使用不同 gcc 版本生成的可执行文件,一个正在使用gcc 3.4.2
,另一个gcc 4.3.2
在我的 Linux 机器中使用
两者都必须在相同的环境中运行,即具有相同的LD_LIBRARY_PATH。
当前的路径4.3.2
放置在3.4.2
给出3.4.2
错误之前。
libstdc++.so.6: version 'GLIBCXX_3.4.9' not found (required by../../src/hello)
我正在考虑一种解决方案,我可以将信息存储在 exe 中以查找所需的加载时间文件。
我在下面创建了有问题的构建脚本:
基本上 O3 选项正在优化。
/opt/gcc-4.3.2/bin/g++ -pipe -O3 -c hello4_3_2.cpp
/opt/gcc-4.3.2/bin/g++ -o hello4_3_2 hello4_3_2.o -L$/opt/gcc-4.3.2/lib64/libstdc++
/opt/gcc-3.4.2/bin/g++ -pipe -O3 -c hello3_4_2.cpp
/opt/gcc-3.4.2/bin/g++ -o hello3_4_2 hello3_4_2.o -L$/opt/gcc-3.4.2/lib64/libstdc++
下面的脚本适用于我:(没有 O3 选项)
/opt/gcc-4.3.2/bin/g++ -pipe -c hello4_3_2.cpp
/opt/gcc-4.3.2/bin/g++ -o hello4_3_2 hello4_3_2.o -L$/opt/gcc-4.3.2/lib64/libstdc++
/opt/gcc-3.4.2/bin/g++ -pipe -c hello3_4_2.cpp
/opt/gcc-3.4.2/bin/g++ -o hello3_4_2 hello3_4_2.o -L$/opt/gcc-3.4.2/lib64/libstdc++
现在:
我想知道是否有其他方法可以实现它。
这样做有什么缺点吗。