玩转 ArrayFire:03 第一个 ArrayFire 程序


前言

在《玩转 ArrayFire:02 善其事,利其器》中,我们已经了解到 ArrayFire 在 Windows 系统下的安装及环境配置,而在这一篇中,我们将继续学习 ArrayFire 如何配合 Visual Studio 2019 软件使用,并创建第一个 ArrayFire 程序。


一、将ArrayFire添加到现有解决方案中

  1. 打开 Visual Studio 2019 ,创建一个新项目->空项目,并命名为“ HelloWorld ”;
  2. 解决平台方案选择x64,添加源文件新建项“ HelloWorld.cpp”;
  1. 修改“ HelloWorld ”项目属性:

    01 选择路径“项目 -> 属性 -> 配置属性 -> VC++目录 -> 包含目录”:添加 ArrayFire 中 include 路径,即“ $(AF_PATH)/include ”;

    02 选择路径“项目 -> 属性 -> 配置属性 -> 链接器 -> 常规 -> 附加库目录”:添加 ArrayFire 中 lib 路径,即“ $(AF_PATH)/lib ”;

    03 选择路径“项目 -> 属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项”:添加“afcpu.lib”(这里,是由于第一个 ArrayFire 程序仅在 CPU 上运行,故没有添加“afcuda.lib”和“afopencl.lib”)。

二、测试案例

1.示例代码

我们在安装 ArrayFire 后,会在安装路径如“C:\Program Files\ArrayFire\v3\examples”找到许多 ArrayFire 官方给出的经典示例,所以首先,我们可以运行其中的一个“ HelloWorld ”示例,验证上述配置是否成功。

  1. 用文本文档打开路径“C:\Program Files\ArrayFire\v3\examples\helloworld”下的“ HelloWorld.cpp”,将内容全选复制到自己创建的HelloWorld.cpp”中;

2.“ Ctrl+F5 ”运行代码,如果程序不出 bug 且调试控制台为下图所示,那么恭喜您顺利步入 ArrayFire 的大门!

2.第一个 ArrayFire 程序

下面,我们将利用 ArrayFire 编写一段自己的代码。这里,仅对几点可能遇到的注意事项进行简单说明:

    01 代码需要包含头文件“ arrayfire.h ”;
    02 代码需要使用 ArrayFire 的命名空间af;

如下为生成常量矩阵和(0-1)随机数矩阵的示例代码:

#include <arrayfire.h>

using namespace af;

int main(void)
{
    
    
	//生成常量矩阵
	array array0;
	array0 = constant(1, 3, 2);
	af_print(array0);
	
	//生成(0-1)随机数矩阵
	array rand0;
	rand0 = randu(2, 4);
	af_print(rand0);

	system("pause");
	return 0;
}

下面是调试控制台输出结果:
在这里插入图片描述

三、“番外”说明

相信看到这里的小伙伴,都已经欢呼雀跃起来了呢。但是博主想告诉大家的是 Visual Studio 配置 ArrayFire 矩阵库也好,其他矩阵库也好,方法都十分类似:都需要让你的解决方案找到你所调用的文件,所以,我们有必要让它知道你的包含目录头文件(.h)的位置、 附加库目录库文件(.lib)的位置以及包含哪个lib文件。同样,ArrayFire 官网也给出了其路径与文件的对应关系,如下。

    AF_PATH/include:ArrayFire的头文件(包括目录);
    AF_PATH/lib:所有ArrayFire后端库、dll和依赖dll(库目录);
    AF_PATH/examples:开始的示例。一些例子也有预先构建的可执行文件;
    AF_PATH/cmake:用于外部项目自动配置的cmake配置文件;
    AF_PATH / uninstall.exe:卸载程序。
    注:AF_PATH环境变量,指向安装位置。默认安装位置为C:\Program Files\ArrayFire\v3


猜你喜欢

转载自blog.csdn.net/weixin_42467801/article/details/113565963