链接错误:犰狳库中"undefined reference to `pthread_atfork'"



最近我将我的armadillo更新到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: error: ld returned 1 exit status

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

这个错误出现在我安装Ubuntu 14.04LTS + gcc 4.9.2的机器上。Armadillo本身链接到OpenBLAS 0.2.14(我在安装过程中遵循了Armadillo提供的过程)

这样的错误不会发生在我的macosx笔记本电脑(相同的库)。这意味着我的ubuntu机器有问题。我试图重新安装Armadillo 4.650.2(这个版本以前工作),但同样的错误不断出现(现在旧的不像以前那样工作)。在更新这些库之前,我做的唯一一件事是"apt-self update"one_answers"apt-self upgrade"我的ubuntu机器

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

我也在Ubuntu Linux上使用armadillo

当我开始用armadillo编程时,我第一次遇到了同样的问题。对于g++,我只需要添加-larmadillo作为命令行选项。例如

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

相关内容

  • 没有找到相关文章

最新更新