犰狳代码无法在 msys2 和 netbeans 中编译

Posted

技术标签:

【中文标题】犰狳代码无法在 msys2 和 netbeans 中编译【英文标题】:Armadillo code cant compile in msys2 and netbeans 【发布时间】:2018-08-12 06:24:39 【问题描述】:

我正在尝试用 netbeans 和 msys2 编译一个简单的犰狳程序:

#include <cstdlib>
#include <armadillo>


using namespace std;

/*
 * 
 */
int main(int argc, char** argv) 
    arma::Mat<double> A = arma::randu(4,4);
    return 0;

我正在使用 netbeans 8.2,msys2 安装并配置了由 pacman 安装的 openblas 和 armadillo。 但我收到此错误:

cd 'D:\Users\Amir\Documents\NetBeansProjects\physics\CppApplication_2'
C:\msys64\usr\bin\make.exe -f Makefile CONF=Release
"/C/msys64/usr/bin/make.exe" -f nbproject/Makefile-Release.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory '/d/Users/Amir/Documents/NetBeansProjects/physics/CppApplication_2'
"/C/msys64/usr/bin/make.exe"  -f nbproject/Makefile-Release.mk dist/Release/MinGW-Windows/cppapplication_2.exe
make[2]: Entering directory '/d/Users/Amir/Documents/NetBeansProjects/physics/CppApplication_2'
mkdir -p build/Release/MinGW-Windows
rm -f "build/Release/MinGW-Windows/main.o.d"
g++    -c -O2 -std=c++11 -MMD -MP -MF "build/Release/MinGW-Windows/main.o.d" -o build/Release/MinGW-Windows/main.o main.cpp
In file included from C:/msys64/mingw64/include/armadillo:54,
                 from main.cpp:15:
C:/msys64/mingw64/include/armadillo_bits/compiler_setup.hpp:66:30: fatal error: C:/building/msys64/mingw64/include/hdf5.h: No such file or directory
 #define ARMA_INCFILE_WRAP(x) <x>
                              ^
compilation terminated.
make[2]: *** [nbproject/Makefile-Release.mk:68: build/Release/MinGW-Windows/main.o] Error 1
make[2]: Leaving directory '/d/Users/Amir/Documents/NetBeansProjects/physics/CppApplication_2'
make[1]: *** [nbproject/Makefile-Release.mk:59: .build-conf] Error 2
make[1]: Leaving directory '/d/Users/Amir/Documents/NetBeansProjects/physics/CppApplication_2'
make: *** [nbproject/Makefile-impl.mk:40: .build-impl] Error 2

BUILD FAILED (exit value 2, total time: 575ms)

我还在 msys2 中安装了 hdf5。 我怎样才能摆脱这个错误? 谢谢。

【问题讨论】:

也许可以试试 Armadillo 的 mingw 构建:github.com/Alexpux/MINGW-packages/tree/master/… 相关站点:github.com/msys2/msys2 【参考方案1】:

似乎有人将此#define ARMA_HDF5_INCLUDE_DIR C:/building/msys64/mingw64/include/ 放入文件夹 armadillo_bits 中的 config.hpp 中。将此更改为您通常的包含目录或将其设置为什么都不能解决问题。

【讨论】:

以上是关于犰狳代码无法在 msys2 和 netbeans 中编译的主要内容,如果未能解决你的问题,请参考以下文章

犰狳 eigs_sym:分解失败

在犰狳中对立方体切片进行操作

犰狳:用 sp_mat 解决

cmake msys2 mingw无法编译简单的测试程序

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

无法在 Windows/MSYS2 下从 bash 脚本运行 MATLAB