当我用 制作我的程序时-larmadillo
,我得到一个需要两个版本的可执行文件:
$ ldd ./a.out | grep armadillo
$ libarmadillo.so.7 => /usr/lib/x86_64-linux-gnu/libarmadillo.so.7 (0x00007fd5e29a0000)
$ libarmadillo.so.4 => not found
谁能指出我正确的方向?这对我来说没有任何意义!
背景:我最初通过 安装了 libarmadillo sudo apt-get install libarmadillo-dev
,然后我意识到我需要使用特定参数(启用 64 位字)来构建它,所以我通过卸载它sudo apt-get remove libarmadillo-dev
然后下载最新版本,配置并 make/make 安装它。大概我的系统上只有一个版本的 libarmadillo - 我在通常的地方看不到任何旧库。
谢谢
编辑:
我的 Makefile 是:
CC= g++
CFLAGS= -Lcontrib/armadillo-7.400.1 -L/usr/include -Lcontrib/mlpack-2.0.1/build/lib -fpermissive -std=c++11 -O0 -g -Wall
LDFLAGS= -lmlpack -larmadillo
我认为 ldd 的详细输出很有趣?
$ ldd -v ./a.out | grep armadillo
$ libarmadillo.so.7 => /usr/lib/x86_64-linux-gnu/libarmadillo.so.7 (0x00007fd5e29a0000)
$ libarmadillo.so.4 => not found
$ /usr/lib/x86_64-linux-gnu/libarmadillo.so.7:
后一部分(列出了 libarmadillo.so.7 的依赖项)是:
/usr/lib/x86_64-linux-gnu/libarmadillo.so.7:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
详细输出中没有提到“缺失”的 libarmadillo.so.4,我觉得这很奇怪。