iOS - 解析加速框架时出错

 牛牛发的 发布于 2023-02-08 23:44

我有这个非常奇怪的问题,只在我的项目中.我正在使用XCode 4.3.6并尝试将Accelerating Framework添加到我的项目中.所以在我的文件中我只是做一个简单的import语句:

#import 

然后我构建我的项目并在指向这些行的文件clapack.h文件中获得4个错误vecLib.framework:

int claswp_(__CLPK_integer *n, __CLPK_complex *a, __CLPK_integer *lda, __CLPK_integer *
    k1, __CLPK_integer *k2, __CLPK_integer *ipiv, __CLPK_integer *incx) __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_4_0);

int dlaswp_(__CLPK_integer *n, __CLPK_doublereal *a, __CLPK_integer *lda, __CLPK_integer 
    *k1, __CLPK_integer *k2, __CLPK_integer *ipiv, __CLPK_integer *incx) __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_4_0);

int slaswp_(__CLPK_integer *n, __CLPK_real *a, __CLPK_integer *lda, __CLPK_integer *k1, 
    __CLPK_integer *k2, __CLPK_integer *ipiv, __CLPK_integer *incx) __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_4_0);

int zlaswp_(__CLPK_integer *n, __CLPK_doublecomplex *a, __CLPK_integer *lda, 
    __CLPK_integer *k1, __CLPK_integer *k2, __CLPK_integer *ipiv, __CLPK_integer *incx) __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_4_0);

所有这些错误都显示出错过预期的结束括号')' k1.奇怪的是,我根本没有在任何其他项目中得到这些错误.这个错误的原因是什么?如果有人能为此提出解决方案,我会非常感激.

1 个回答
  • 您的代码(或之前包含的标题之一<Accelerate/Accelerate.h>)定义了一个带有名称的宏k1.就像是:

    #define k1 *some expression*
    

    系统库使用像这样的"常见"参数名称的错误就是出于这个原因,但出于同样的原因,将它们用作宏名称也是一种不好的风格.

    您可以通过以下几种方法解决此问题:

      更改宏的名称.

      移动宏的定义,使其包含Accelerate标头后出现.

      如果您没有使用LAPACK函数,而是使用Accelerate的其他部分,则可以阻止编译器通过include-guard滥用来查看clapack.h原型:

       #define __CLAPACK_H // hide clapack.h prototypes
       #import <Accelerate/Accelerate.h>
      

    2023-02-09 00:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有