在 Windows 10 上使用 Armadillo 作为库与 CLion 和 CMake 的问题

Posted

技术标签:

【中文标题】在 Windows 10 上使用 Armadillo 作为库与 CLion 和 CMake 的问题【英文标题】:Issues using Armadillo as a library with CLion & CMake on Windows 10 【发布时间】:2017-10-08 12:31:18 【问题描述】:

我正在尝试在 Windows 10 上的 CLion 项目中使用 Armadillo 库,但是当我尝试通过 Reload CMake Project(使用内置 CMake 编译器)构建时,片刻后会出现此错误:

CMake Error at C:/Program Files/JetBrains/CLion 2017.2.3/bin/cmake/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Armadillo (missing: ARMADILLO_LIBRARY) (found version
  "0.0.0")
Call Stack (most recent call first):
  C:/Program Files/JetBrains/CLion 2017.2.3/bin/cmake/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/JetBrains/CLion 2017.2.3/bin/cmake/share/cmake-3.8/Modules/FindArmadillo.cmake:77 (find_package_handle_standard_args)
  CMakeLists.txt:4 (find_package)

我从here 下载了库的内容,并将其移动到位于$PROGRAM FILES\Armadillo 的文件夹中。为了在我的项目中使用它,我使用了FindArmadillo module,如下所示:

find_package(Armadillo REQUIRED)    # this is where the error occurs
include_directories($ARMADILLO_INCLUDE_DIRS)
...
add_executable(MyProject $SOURCE_FILES)
target_link_libraries(MABE $ARMADILLO_LIBRARIES)

我有什么遗漏吗?我必须先编译库(或类似的东西)才能在我的项目中使用它吗?还是我搞砸了下载?

提前致谢!

【问题讨论】:

你下载了哪个包?您的链接未指定。几乎可以肯定,您将需要构建 Armadillo 库。 armadillo.lib 是否存在于`C:\Program Files\armadillo\lib` 中? 我下载了armadillo-8.100.1.tar.xz 包。实际上,犰狳目录中既不存在 lib 目录,也不存在 armadillo.lib 文件。对不起,如果这是一个愚蠢的问题,但我如何建立图书馆?或者更确切地说,我如何创建 .lib 文件?我必须创建自己的 CMakeLists.txt 文件还是使用 zip 中包含的文件? 您可以使用存档中包含的那个。构建完成后,cmake 应该能够找到生成的 armadillo.libarmadillo.dll(如果您构建了共享库)。请注意,如果您想要更好的空间矩阵支持,您还需要打开 include/armadillo_bits/config.hpp 并取消注释 #define ARMA_USE_LAPACK#define ARMA_USE_BLAS 以与预编译的 BLAS 和 LAPACK 库链接。 【参考方案1】:

不确定这是否仍然相关,但对于一个小项目,您可以将解压缩的文件保存在项目根目录中,然后将此行添加到您的 CMakeLists.txt

target_include_directories(YOURPROJECTNAME PUBLIC armadillo/include)

我只是一个初学者,发现这是添加许多库的最简单的解决方案:)

希望这会有所帮助!

【讨论】:

以上是关于在 Windows 10 上使用 Armadillo 作为库与 CLion 和 CMake 的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 CMake 在 Windows 10 上构建 uWebSockets

在iis上使用Htaccess文件(Windows 10)

在windows 10上使用qemu安装Windows 10虚拟机

在windows 10上使用qemu安装Windows 10虚拟机

无法在 Windows 10 上使用 pip install

使用 freeglut 在 Windows 10 上出现 glDebugMessageCallback 问题