簡體   English   中英

如何將 Accelerate Framework 鏈接到 MacO 中的 c 程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM