C++ Fedora 22-编译-原子是无锁的

C++ Fedora 22-编译-原子是无锁的,c++,gcc,boost,fedora,C++,Gcc,Boost,Fedora,我试图在Fedora 22上编译一个软件(超级准直器),但遇到了一个问题: libsupernova.a(server.cpp.o):在函数'std::atomic::is_lock\u free()const'中: /usr/include/c++/5.1.1/atomic:212:未定义的对`\u原子`\u的引用是\u锁定\u自由的' collect2:错误:ld返回了1个退出状态 服务器/supernova/CMakeFiles/supernova.dir/build.make:96:目标

我试图在Fedora 22上编译一个软件(超级准直器),但遇到了一个问题:

libsupernova.a(server.cpp.o):在函数'std::atomic::is_lock\u free()const'中:
/usr/include/c++/5.1.1/atomic:212:未定义的对`\u原子`\u的引用是\u锁定\u自由的'
collect2:错误:ld返回了1个退出状态
服务器/supernova/CMakeFiles/supernova.dir/build.make:96:目标服务器/supernova/supernova的配方失败
生成[2]:***[服务器/超新星/超新星]错误1
CMakeFiles/Makefile2:3383:目标“服务器/supernova/CMakeFiles/supernova.dir/all”的配方失败
make[1]:***[server/supernova/CMakeFiles/supernova.dir/all]错误2
Makefile:146:目标“全部”的配方失败
make:**[全部]错误2
在我看来,这是libatomic的一个问题。gcc是否可能不链接到libatomic

有人知道如何解决这个问题吗

另一个想法是尝试安装-latomic,但我找不到有关的信息。 相反,我已经安装了libatomic。我不知道它们是否相同

在我看来,这是libatomic的一个问题。gcc是否可能不链接到libatomic

它只会链接到libatomic,如果你告诉它的话

有人知道如何解决这个问题吗

链接到libatomic

另一个想法是尝试安装-latomic,但我找不到有关的信息。相反,我已经安装了libatomic。我不知道它们是否相同

您不能“安装-latomic”,因为
-latomic
是编译器/链接器选项,表示链接到libatomic,而不能“安装链接器选项”,因为它是程序的选项,而不是程序包的选项

安装libatomic,然后使用
-latomic


(旁白:我希望修复GCC,这样您就不需要在简单的情况下显式地使用
-latomic
,只需要更复杂的情况,请参见)

我遇到了同样的问题,是的,您确实需要链接libatomic。执行此操作的方法是在运行CMAKE之前,将以下行添加到顶级CMakeLists.txt文件中:
set(CMAKE\u CXX\u LINK\u FLAGS“${CMAKE\u CXX\u LINK\u FLAGS}-latomic”)

整个流程可能如下所示:

  • git克隆https://github.com/supercollider/supercollider.git
  • cd超级对撞机
  • set(CMAKE\u CXX\u LINK\u FLAGS“${CMAKE\u CXX\u LINK\u FLAGS}-latomic”)
    添加到顶级CMakeLists.txt
  • 运行
    ccmake.
    配置安装
  • mkdir\u构建;cd_构建
  • cmake..
  • make&&make-install

您可能需要也可能不需要sudo,这取决于您决定在哪里安装Supercellider。

这是一个好消息。。我确实在寻找如何将libatomic链接到gcc。你能告诉我怎么做或者在哪里可以找到有关的信息吗?我不明白这个问题,我不是已经回答了吗?安装libatomic,然后使用
-latomic
链接到它。使用
dnf Install libatomic
安装它,然后在链接时使用
-latomic
。对不起,我不太清楚。我安装了libatomic。现在我被卡住了。我的意思是:你如何把事情联系起来?在建造超级对撞机时使用
-latomic
。要让CMake做到这一点,我认为您需要类似于TARGET\u LINK\u LIBRARIES(原子)After./Configure。。。编辑Makefile查找并更改以下行:CNF_EX_LIBS=-pthread到CNF_EX_LIBS=“-pthread-latomic