将 Armadillo 添加到 Qt 项目
Adding Armadillo to Qt project
我正在尝试 运行 对我下载的 Armadillo 库 (5.2) 进行测试,并且我取消了 [=14= 中 ARMA_USE_LAPACK
和 ARMA_USE_BLAS
行的注释] Windows here 推荐的文件。我已经这样设置了 .pro 文件
QT += core
QT -= gui
TARGET = armatest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += \
main.cpp
INCLUDEPATH += C:\Armadillo\include
LIBS += -LC:\Armadillo\lib_win64
-llapack_win64_MT
-lblas_win64_MT
考虑到 lapack_win64_MT.lib
和 blas_win64_MT.lib
是位于 C:\Armadillo\lib_win64\
的库
我一直收到的错误是
undefined reference to 'dgetrf_'
undefined reference to 'ddot_'
undefined reference to 'dgemv_'
等好像我没有正确链接库。我错过了什么?
我正在使用 MinGW 4.9.1 作为编译器
您缺少 LAPACK 和 BLAS 来提供实际的底层线性代数运算。
这在 Armadillo FAQ 和其他地方都有记载。您可能需要为您的系统重新安装或重建 Armadillo;它不随 LAPACK 和 BLAS 一起提供。
我的首选方法是构建一个独立的 Armadillo 测试程序(也许您已经拥有),为 Qt 构建一个——然后尝试加入构建说明。
编辑: 您陷入了混合 MinGW 和 VC++ 的常见问题。犰狳网站清楚地说
As a courtesy, the Armadillo package contains pre-compiled 64 bit versions of LAPACK and BLAS, as well as MSVC project files to compile the example programs. The MSVC project files were tested on 64 bit Windows 7 with Visual C++ 2012. You may need to make adaptations for later versions of Windows and/or the compiler.
这对您使用 MinGW 没有帮助。需要自己找MinGW编译的LAPACK和BLAS。
问题有两个原因
库是 x64 的,我的编译器是 32 位的(尽管我的机器是 x64)
LIBS 路径必须用反斜杠书写
LIBS += \
-LC:\Armadillo\lib32 \
-lliblapack \
-llibblas
我正在尝试 运行 对我下载的 Armadillo 库 (5.2) 进行测试,并且我取消了 [=14= 中 ARMA_USE_LAPACK
和 ARMA_USE_BLAS
行的注释] Windows here 推荐的文件。我已经这样设置了 .pro 文件
QT += core
QT -= gui
TARGET = armatest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += \
main.cpp
INCLUDEPATH += C:\Armadillo\include
LIBS += -LC:\Armadillo\lib_win64
-llapack_win64_MT
-lblas_win64_MT
考虑到 lapack_win64_MT.lib
和 blas_win64_MT.lib
是位于 C:\Armadillo\lib_win64\
我一直收到的错误是
undefined reference to 'dgetrf_'
undefined reference to 'ddot_'
undefined reference to 'dgemv_'
等好像我没有正确链接库。我错过了什么?
我正在使用 MinGW 4.9.1 作为编译器
您缺少 LAPACK 和 BLAS 来提供实际的底层线性代数运算。
这在 Armadillo FAQ 和其他地方都有记载。您可能需要为您的系统重新安装或重建 Armadillo;它不随 LAPACK 和 BLAS 一起提供。
我的首选方法是构建一个独立的 Armadillo 测试程序(也许您已经拥有),为 Qt 构建一个——然后尝试加入构建说明。
编辑: 您陷入了混合 MinGW 和 VC++ 的常见问题。犰狳网站清楚地说
As a courtesy, the Armadillo package contains pre-compiled 64 bit versions of LAPACK and BLAS, as well as MSVC project files to compile the example programs. The MSVC project files were tested on 64 bit Windows 7 with Visual C++ 2012. You may need to make adaptations for later versions of Windows and/or the compiler.
这对您使用 MinGW 没有帮助。需要自己找MinGW编译的LAPACK和BLAS。
问题有两个原因
库是 x64 的,我的编译器是 32 位的(尽管我的机器是 x64)
LIBS 路径必须用反斜杠书写
LIBS += \
-LC:\Armadillo\lib32 \
-lliblapack \
-llibblas