我想编译源代码,但有一些关于__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进行编译?
答案 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路径。