链接错误:Armadillo库中的“未定义引用'pthread_atfork'”

时间:2015-06-02 15:20:17

标签: armadillo openblas

最近我将我的犰狳更新到版本5.200.1,但当我尝试使用

编译我的代码时
g++ -std=c++11 -m64 -O3 -Wall -I. -I/opt/OpenBLAS/include -fopenmp -o code.cpp.o -c code.cpp
g++ -std=c++11 -m64 -O3 -Wall -I. -I/opt/OpenBLAS/include -fopenmp -o main.cpp.o -c main.cpp
g++ -std=c++11 -m64 -O3 -o code.cpp.o main.cpp.o -lgomp -L/opt/OpenBLAS/lib -lopenblas -larmadillo

我在最后的链接步骤中收到了错误消息

  

/usr/lib/gcc/x86_64-linux-gnu/4.9 /../../../../ LIB / libarmadillo.so:   对'pthread_atfork'的未定义引用

     

collect2:错误:ld返回1退出状态

     

make:*** [a.out]错误1

使用Ubuntu 14.04LTS + gcc 4.9.2在我的机器上出现此错误。 犰狳本身与OpenBLAS 0.2.14相关(我按照Armadillo提供的程序安装)

我的macosx笔记本电脑(同一个库)中不会发生此类错误。这意味着我的ubuntu机器出了问题。我试图重新安装Armadillo 4.650.2(这个版本以前工作过),但同样的错误一直出现(现在老版本不像以前那样工作)。我更新这些库之前唯一能做的就是我的ubuntu机器的“apt-self update”和“apt-self upgrade”

有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我也在Ubuntu Linux上使用armadillo

当我开始使用犰狳编程时,我首先遇到了同样的问题。对于g ++,我只需添加-larmadillo作为命令行选项。比如这个

g++ -O2 -o armadillo_example armadillo_example.cpp -larmadillo