犰狳代码无法在 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 中编译的主要内容,如果未能解决你的问题,请参考以下文章