【发布时间】:2015-10-01 15:07:37
【问题描述】:
我尝试在 Fedora 22 上编译一个软件(SuperCollider)但我遇到了一个问题:
libsupernova.a(server.cpp.o): In function `std::atomic<boost::lockfree::detail::tagged_index>::is_lock_free() const':
/usr/include/c++/5.1.1/atomic:212: undefined reference to `__atomic_is_lock_free'
collect2: error: ld returned 1 exit status
server/supernova/CMakeFiles/supernova.dir/build.make:96: recipe for target 'server/supernova/supernova' failed
make[2]: *** [server/supernova/supernova] Error 1
CMakeFiles/Makefile2:3383: recipe for target 'server/supernova/CMakeFiles/supernova.dir/all' failed
make[1]: *** [server/supernova/CMakeFiles/supernova.dir/all] Error 2
Makefile:146: recipe for target 'all' failed
make: *** [all] Error 2
在我看来,这是 libatomic 的一个问题。 gcc有没有可能没有链接到libatomic?
有人知道如何解决这个问题吗?
另一个想法是尝试安装 -latomic,但我找不到有关的信息。 相反,我已经安装了 libatomic。不知道是不是一样的。
【问题讨论】:
-
在 ./Configure ... 编辑 Makefile 后找到并更改该行:CNF_EX_LIBS=-pthread 为 CNF_EX_LIBS="-pthread -latomic