首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift 5中使用Armadillo C++库

在Swift 5中使用Armadillo C++库
EN

Stack Overflow用户
提问于 2021-05-28 07:43:53
回答 1查看 232关注 0票数 0

我试图在我的快速代码中使用Armadillo C++库来创建正弦弯曲箭头。早些时候,它在Objective中运行良好,但是当我试图在Swift中执行相同的实现时,它显示的是'armadillo' file not found错误。

我从https://github.com/gadomski/armadillo/tree/master/branch-5.600/include路径下载了该文件,并将armadillo_bits文件夹和armadillo文件复制到项目中。

我还围绕C++类创建了一个客观的C++包装器。

目标DrawSinusoidal.h文件

代码语言:javascript
复制
#import <Foundation/Foundation.h>

@interface DrawSinusoidal : NSObject

+(NSArray *)bezierPathsForPoints:(NSArray *)points;

目标DrawSinusoidal.mm文件

代码语言:javascript
复制
#import "DrawSinusoidal.h"
#import "DrawSinusoidalMath.h"

@implementation DrawSinusoidal

+(NSArray *)bezierPathsForPoints:(NSArray *)points {
 ...
}

DrawSinusoidalMath.h文件- C++文件

代码语言:javascript
复制
#include "armadillo"

std::vector<std::vector<arma::vec2>> bezierPathsForPoints(const std::vector<arma::vec2> &points);

DrawSinusoidalMath.cpp文件- C++文件

代码语言:javascript
复制
#include <iostream>
#include "DrawSinusoidalMath.h"

using namespace arma;

std::vector<arma::vec2> bezierPathsForPoints(const arma::mat &tValues, const std::vector<arma::vec2> &points)
{
... 
...
 return points
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-03 19:59:44

最后我找到了解决办法。分享我所遵循的步骤。

  • 我们需要将预置的Armadillo软件包安装到macOS上,可以通过MacPortsHomeBrew安装。
  • 我使用HomeBrew安装。

$ brew install armadillo

完成后,请在最后一行的安装路径上留一条注释。

在我的机器中,它安装在path /usr/local/Cellar/armadillo/10.5.1上。

  • 接下来,我们需要提供头搜索路径。标题在下面的位置可用,所以只需复制路径并粘贴到Xcode中即可。

/usr/local/Cellar/armadillo/10.5.1/include/armadillo_bits

  • 接下来,我们需要将安装路径中可用的libarmadillo.dylib库链接到Xcode中的sdk路径。打开终端并键入以下命令。
代码语言:javascript
复制
sudo ln -s /usr/local/Cellar/armadillo/10.5.1/lib/libarmadillo.dylib /Applications/Xcode_12.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.4.sdk/usr/lib/libarmadillo.dylib
  • 一旦完成,现在您可以转到Targets > Build Phases > Link Binary with Libraries,您应该看到libarmadillo.dylib选择并将其添加到您的项目中。

  • 最后一步。从下面的路径复制armadillo文本文件和armadillo_bits文件夹到项目。/usr/local/Cellar/armadillo/10.5.1/include

就这样..。设置已经结束,您可以在Objective/Swift项目中的C++文件中使用Armadillo库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67734805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档