最近我将我的犰狳更新到版本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”
有什么建议可以解决这个问题吗?
答案 0 :(得分:1)
我也在Ubuntu Linux上使用armadillo
当我开始使用犰狳编程时,我首先遇到了同样的问题。对于g ++,我只需添加-larmadillo
作为命令行选项。比如这个
g++ -O2 -o armadillo_example armadillo_example.cpp -larmadillo