我试图在我的快速代码中使用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文件
#import <Foundation/Foundation.h>
@interface DrawSinusoidal : NSObject
+(NSArray *)bezierPathsForPoints:(NSArray *)points;目标DrawSinusoidal.mm文件
#import "DrawSinusoidal.h"
#import "DrawSinusoidalMath.h"
@implementation DrawSinusoidal
+(NSArray *)bezierPathsForPoints:(NSArray *)points {
...
}DrawSinusoidalMath.h文件- C++文件
#include "armadillo"
std::vector<std::vector<arma::vec2>> bezierPathsForPoints(const std::vector<arma::vec2> &points);DrawSinusoidalMath.cpp文件- C++文件
#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
}发布于 2021-06-03 19:59:44
最后我找到了解决办法。分享我所遵循的步骤。
$ brew install armadillo
完成后,请在最后一行的安装路径上留一条注释。

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

libarmadillo.dylib库链接到Xcode中的sdk路径。打开终端并键入以下命令。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.dylibTargets > Build Phases > Link Binary with Libraries,您应该看到libarmadillo.dylib选择并将其添加到您的项目中。

armadillo文本文件和armadillo_bits文件夹到项目。/usr/local/Cellar/armadillo/10.5.1/include
就这样..。设置已经结束,您可以在Objective/Swift项目中的C++文件中使用Armadillo库。
https://stackoverflow.com/questions/67734805
复制相似问题