如何使用指定的 gcc 编译犰狳库?

Posted

技术标签:

【中文标题】如何使用指定的 gcc 编译犰狳库?【英文标题】:how to compile armadillo library with specified gcc? 【发布时间】:2014-03-11 13:13:02 【问题描述】:

根据犰狳中的自述文件,输入“cmake .”命令后,再输入“make”命令,打印如下错误信息。

Scanning dependencies of target armadillo
[100%] Building CXX object CMakeFiles/armadillo.dir/src/wrapper.cpp.o
In file included from armadillo-4.100.2/src/wrapper.cpp:8:
armadillo-4.100.2/build_tmp/include/armadillo_bits/compiler_setup.hpp:125:6: error: #error "*** Need a newer compiler ***"
make[2]: *** [CMakeFiles/armadillo.dir/src/wrapper.cpp.o] Error 1
make[1]: *** [CMakeFiles/armadillo.dir/all] Error 2
make: *** [all] Error 2

我阅读了 compiler_setup.hpp 文件。我发现失败是由于默认 gcc 低。但是用我更高的gcc编译很热?

【问题讨论】:

【参考方案1】:

Make 监听环境变量,您也可以在命令行上设置。试试

 $ CXX=g++-4.8 make

和g++-4.8(如果有的话)都可以使用。另一个技巧是使用

 $ cd /usr/local/bin && ln -s /usr/bin/g++-4.8 g++

因为会先查询/usr/local/bin中的路径。

【讨论】:

-- 配置犰狳 4.100.2 -- CMAKE_SYSTEM_NAME = Linux -- CMAKE_CXX_COMPILER_ID = GNU -- CMAKE_CXX_COMPILER_VERSION = 4.1.2 -- CMAKE_COMPILER_IS_GNUCXX = 1 -- MKL_FOUND = NO -- ACMLMP_FOUND = NO -- ACML_FOUND = NO -- LAPACK_FOUND = NO -- BLAS_FOUND = NO -- OpenBLAS_FOUND = NO -- CLAPACK_FOUND = NO -- CBLAS_FOUND = NO -- ARPACK_FOUND = NO -- -- *** Armadillo 的运行时库组件将使用以下库:-- *** ARMA_LIBS = 我试试你的第一种方法。但它也不起作用。第二个,因为我不是root,所以我做不到。

以上是关于如何使用指定的 gcc 编译犰狳库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在编译期间强制犰狳库链接到本地​​ OpenBLAS

使用 clang 而不是 gcc 安装犰狳

gcc找不到静态库中的函数

如何将 lapack 和 BLAS 库链接到 C++ 代码

了解 Makefile。 make 无法链接犰狳库

使用 PGI 编译器链接到犰狳库的 Makefile