将Armadillo添加到Qt项目
Adding Armadillo to Qt project
我正在尝试运行我下载的Armadillo库(5.2)的测试,并且我已经取消了config.hpp
文件中的ARMA_USE_LAPACK
和ARMA_USE_BLAS
行注释,这是Windows在这里推荐的。我将.pro文件设置为
QT += core
QT -= gui
TARGET = armatest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES +=
main.cpp
INCLUDEPATH += C:Armadilloinclude
LIBS += -LC:Armadillolib_win64
-llapack_win64_MT
-lblas_win64_MT
考虑lapack_win64_MT.lib
和blas_win64_MT.lib
是位于C:Armadillolib_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++的常见问题。Armadillo网站上清楚地写着
作为礼让,Armadillo包包含预编译的64位版本的LAPACK和BLAS,以及用于编译示例程序的MSVC项目文件。MSVC项目文件在64位Windows 7和Visual c++ 2012上进行了测试。您可能需要针对Windows和/或编译器的新版本进行调整。
不能帮助您使用MinGW。您需要找到MinGW编译的LAPACK和BLAS。
这个问题有两个原因
库是x64的,而我的编译器是32位的(即使我的机器是x64)
LIBS路径必须用反斜杠写
LIBS +=
-LC:Armadillolib32
-lliblapack
-llibblas
相关文章:
- 错误-我无法在VS2019中打开新的Qt项目
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 尝试在 QT 项目中调用 Java 代码时未找到类异常
- 无法在默认Qt项目中打开源文件"ui_QtGuiApplication.h"
- 在路径的独立Qt项目中包括外部库
- 为Qt项目树中的所有项目定义全局宏
- CMake用于C++/Qt项目中的外部库
- 如何将ICU库添加到ARM的Qt项目中
- 将libtensorflow_cc.so文件链接到QT项目
- 将网络添加到Qt项目
- 编译Qt项目,得到错误QQmlEngine:没有这样的文件或目录编译终止
- 是否可以在QT项目中使用Tensorflow C++ API?
- 在Qt C++项目中使用Go
- 编译Qt项目给出了对运算符delete(void*,unsigned int)的未定义引用
- 为Qt项目的每个模块添加一个包含
- 如何使用.UI文件在QT Creator中使用CMAKE制作GUI QT项目
- 在Qt项目中包括谷歌测试
- Qt项目与自定义共享库交叉编译Qt
- 如何从Qt C++项目运行Python函数
- 如何使用 qmake 将 pcl 库成功添加到 qt 项目中