[英]How do I link the Accelerate Framework to a c program in MacOs?
我剛開始 c 開發,我需要編譯和鏈接一個使用 Apple Accelerate Framework 的程序: 簡單示例accelerate.c
。c :
#include <stdio.h>
#include <Accelerate/Accelerate.h>
double vectorvector_product(double * a, double * b, int dim){
// This function returns in res the elementwiseproduct between a and b,
// a and b must have the same dimension dim.
return cblas_ddot(dim,a,1,b,1);
}
int main(){
double a[4] = {1.0,2.0,3.0,4.0};
double b[4] = {1.0,2.0,3.0,4.0};
double res = vectorvector_product(a,b,4);
printf("Res: %f",res);
}
我用 clang 編譯它:
>>> cc -Wall -g -c accelerate.c
並獲得了一個新文件accelerate.o
.o 我現在該怎么做才能正確鏈接它? 我只知道這個Accelerate
框架位於/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework
>>> ls /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework
Accelerate.tbd Frameworks Headers Modules Versions
ps:如果我用 Xcode 運行這個程序,它會神奇地工作,但我需要從命令行執行,我想知道我在做什么。
顯然,鏈接Accelerate.h
的正確方法是將-framework Accelerate
作為參數傳遞,例如
>>> cc -framework Accelerate accelerate.c
將通過生成可執行文件a.out
來編譯和鏈接accelerate.c
。c。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.