Solaris 10上的gcc编译错误

时间:2012-03-27 11:19:29

标签: gcc solaris solaris-10 compare-and-swap

我想编译源代码,但有一些关于__sync_xxx函数的编译错误(__sync_bool_compare_and_swap等)

机器上的GCC版本是3.4.3(它必须是gcc 4.1或更高版本才能支持原子内置),所以我下载了GCC v4.6,将其复制到另一个目录(我没有删除v3.4.3)然后更改GCC的$PATH路径但它不起作用(发生相同的错误)。

我想问一下,只有用export PATH=...来改变gcc路径才能用新的GCC进行编译?

3 个答案:

答案 0 :(得分:0)

在编译gcc时使用以下 configure 选项:

--program-prefix=foo --program-suffix=bar

它会产生“foo-gcc-bar”形式的bin程序,这样你就可以区分不同的gcc构建。

用你的版本的相应“标签”替换foo和/或bar(例如“-4.6”)。

这样一来,如果它没有正确找到你的工具链,它会快速失败,而不是使用3.4版本。

这也意味着不同的工具链构建可以在标准安装前缀目录中共存。

答案 1 :(得分:0)

我们必须使用-march = 686开关才能让它在intel上工作。

答案 2 :(得分:0)

尝试检查并更新LD_LIBRARY_PATH,以使用已安装的新gcc的lib路径。