【发布时间】:2012-06-02 23:17:21
【问题描述】:
我正在尝试在我的 C++ pthread 程序中包含 atomic。
#include <atomic>
但是,我得到了错误:
错误:原子:没有这样的文件或目录
我试过了:
#include <asm/atomic>
#include <atomic.h>
#include <linux/atomic>
#include <util/atomic>
#include <stdcatomic>
#include <catomic>
没有人工作。
我的 gcc 是 gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-52)
帖子:
#include <cstdatomic> "no such file" in ubuntu
std::atomic support in g++ 4.4.3
也不行。
And #include <thread> also got : No such file or directory
任何帮助将不胜感激。
谢谢!
更新,
我正在尝试在 Linux 上安装 GCC 4.7,但在“make check”中出现错误,
autogen -T /remote/mypath/gcc_4_7_2012_5_28/gcc_4_7_new_2012_5_29/trunk/fixincludes/check.tpl , remote/mypath/gcc_4_7_2012_5_28/gcc_4_7_new_2012_5_29/trunk/fixincludes/inclhack.def ,
make[2]: execvp: autogen: Permission denied, then I tried to install autogen, but
got: I need to install guile-devel, then when I installed guile-2.0.5-2.1.src.rpm ,
I got rpm -ivh guile-2.0.5-2.1.src.rpm, warning: guile-2.0.5-2.1.src.rpm: Header V3
RSA/SHA256 signature: NOKEY, key ID 3dbdc284
error: cannot write to %sourcedir /usr/src/redhat/SOURCES, I cannot get root
authorization.
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
先升级你的GCC,你的版本太旧了,不支持
<atomic>。 -
atomic是在较新版本的 C++ (C++11) 中引入的。你的 g++ 是在atomic发明之前编写的! -
看来您正在运行 RHEL 5。这是 2007 年发布的,使其非常过时 - GCC 4.1.2 也在 2007 年 2 月发布。您需要查看您的升级选项,无论是您的整个发行版还是您的 GCC 和标准库工具链。
-
最新的gcc是4.7,你有的有点生疏
标签: c++ linux gcc pthreads atomic