【发布时间】:2013-06-17 17:40:55
【问题描述】:
我在我的桌面上下载并构建了 gcc 4.8.1,运行 64 位 Ubuntu 12.04。我按照文档推荐的方式从源代码构建它,并使用命令
../../gcc-4.8.1/configure --prefix=$HOME --program-suffix=-4.8
make
make -k check
make install
它似乎通过了所有测试,我将所有内容都安装到我的主目录中,后缀为 -4.8,以区别于系统 gcc,即版本 4.6.3。
不幸的是,当我使用 g++-4.8 编译 c++ 程序时,它链接到系统 libc 和 libstdc++,而不是从 gcc-4.8.1 编译的较新的程序。我下载并构建了 gcc 4.8,因为我想在标准库中使用新的 C++11 功能,所以这种行为绝对不是我想要的。我该怎么做才能让 gcc-4.8 自动链接到它附带的标准库而不是系统标准库?
【问题讨论】:
-
libc 与 GCC 无关,所以没有“用 gcc-4.8.1 编译的较新的”,它应该链接到系统 libc。大概当您说它链接到系统 libstdc++ 时,您的意思是它链接正确但由于 libstdc++ 版本不正确而无法运行?
-
@JonathanWakely 是的,没错。
标签: c++ linux gcc g++ libstdc++