犰狳安装
Armadillo installation
嗨,我在我自己的工作目录/home/me/package/armadillo3.0.1/中安装了犰狳 3.0.1,正如自述文件所说,.txt说。但是当我尝试一个例子时:
g++ -I/home/me/package/armadillo3.0.1/usr/include/example.cpp -o example -O1
它始终显示错误:
/tmp/ccZAE9pj.o: In function
void arma::gemm<false, false, false, false>::apply_blas_type<double>(arma::Mat<double>&, arma::Mat<double> const&, arma::Mat<double> const&, double, double)': example.cpp:(.text._ZN4arma4gemmILb0ELb0ELb0ELb0EE15apply_blas_typeIdEEvRNS_3MatIT_EERKS5_S8_S4_S4_[void arma::gemm<false, false, false, false>::apply_blas_type<double>(arma::Mat<double>&, arma::Mat<double> const&, arma::Mat<double> const&, double, double)]+0x75e): undefined reference to
wrapper_dgemm_' /tmp/ccZAE9pj.o: In functionvoid arma::glue_times_redirect2_helper<true>::apply<arma::Mat<double>, arma::Mat<double> >(arma::Mat<arma::Mat<double>::elem_type>&, arma::Glue<arma::Mat<double>, arma::Mat<double>, arma::glue_times> const&)': example.cpp:(.text._ZN4arma27glue_times_redirect2_helperILb1EE5applyINS_3MatIdEES4_EEvRNS3_INT_9elem_typeEEERKNS_4GlueIS5_T0_NS_10glue_timesEEE[void arma::glue_times_redirect2_helper<true>::apply<arma::Mat<double>, arma::Mat<double> >(arma::Mat<arma::Mat<double>::elem_type>&, arma::Glue<arma::Mat<double>, arma::Mat<double>, arma::glue_times> const&)]+0xe69): undefined reference to
wrapper_dgemv_' example.cpp:(.text._ZN4arma27glue_times_redirect2_helperILb1EE5applyINS_3MatIdEES4_EEvRNS3_INT_9elem_typeEEERKNS_4GlueIS5_T0_NS_10glue_timesEEE[void arma::glue_times_redirect2_helper::apply, arma::mat>(arma::Mat::elem_type>&, arma::Glue, arma:Mat, arma::glue_times> const&)]+0x1175): 未定义对"wrapper_dgemv_"的引用 收集2:LD 返回 1 个退出状态
但是,如果我添加 -larmadillo 选项,例如:
g++ 示例.cpp -o 示例 -O1 -larmadillo
它通过调用旧版本来工作。如果我想使用 3.0.1 中的新功能,如 Mat.t(),它还会显示错误:
示例.cpp:在函数 'int main(int, char**)' 中: 示例.cpp:20:错误:"结构 arma::mat"没有名为"t"的成员
这表明通过添加 -larmadillo,它从/usr/include/armadillo_bits/调用旧版本的犰狳。
知道吗?谢谢。
在第一个命令中,您没有与libarmadillo链接。您是否考虑过使用 -L gcc 选项添加链接目录?例如:
g++ -I/home/me/package/armadillo3.0.1/usr/include/ -L/home/me/package/armadillo3.0.1/usr/lib example.cpp -o example -O1 -larmadillo
我也遇到了这个问题。 我已经通过卸载任何以前版本的犰狳来修复它,因为它们会干扰新版本。
卸载可以通过包管理器完成。您也可以通过以下命令手动删除旧版本(在终端窗口中):
rm /usr/include/armadillo
rm -rf /usr/include/armadillo_bits
您需要以超级用户 (root) 身份运行上述命令。 在 Ubuntu 上,用"sudo"开头就足够了。
您可能还需要删除旧的库文件,这些文件可能位于/usr/lib/或/usr/lib64/或类似内容中。
删除旧版本后,您可以通过基于 cmake 的安装重新安装新的犰狳。
我删除了旧的并在默认目录中重新安装了新目录。成功了!所以当我安装旧版本时似乎
:使安装 DESTDIR=my/own/dir/
安装不正确。
因此,对于像我这样的新手来说,默认安装更有意义。
- 在Ubuntu 16.04上安装Cilk时出现问题
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- C++:如何在CLion IDE中安装Boost
- 安装opencv失败-粘贴CMakeError.log的内容
- 在cygwin中测试新的boost安装时出现cpp错误
- 有人安装"IITB Simplecpp in mac"吗?
- 我可以在 Arduino 的库文件夹之外安装库吗?
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- 安装 libc++ 时出现问题
- 安装MinGW后C++编译器不起作用?
- 介子复制/安装头文件到输出目录并保持文件夹结构
- 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2) - C++编译器问题
- 如何在 Ubuntu 上安装 OpenCV for C/C++
- 检查是否安装了 windows10 C++
- 安装 psutil 和为 pypy 配置期间出错
- 如何在 Debian 10 上安装 CPP 手册页?
- 如何更改使用 CPack 安装的可执行文件的名称?
- 使用 MinGW 在 Windows 上安装 GMP 时出错
- 在 macOS 上安装 clang_complete