加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c++ ___sincos_stret链接时未定义的符号

发布时间:2020-12-15 01:38:47 所属栏目:百科 来源:网络整理
导读:像以前提到的 here一样,在使用Xcode5命令行工具编译使用此符号的项目时,找不到___sincos_stret. 在上述引用的线程中,针对IOS目标(向编译器传递-miphoneos-version-min = 5.0)发布了一个解决方案,是否有针对桌面(x64)目标的解决方案? 例如,当我尝试编译polyc
像以前提到的 here一样,在使用Xcode5命令行工具编译使用此符号的项目时,找不到___sincos_stret.

在上述引用的线程中,针对IOS目标(向编译器传递-miphoneos-version-min = 5.0)发布了一个解决方案,是否有针对桌面(x64)目标的解决方案?

例如,当我尝试编译polycode时,我会发生这种情况.

编辑2:

奇怪的是,在手动编译前面的错误引用的库之后,错误现在恰好位于lto.o,这是一个内部的llvm头本身…

undef: ___sincos_stret
Undefined symbols for architecture x86_64:
  "___sincos_stret",referenced from:
      _mdct_init in lto.o
      _dradfg in lto.o

我正在运行OSX 10.9 DP与Xcode 5. This is the link step.

解决方法

苹果公司为“返回结构”而讲话. ___sincos_stret是一个LLVM优化 – 如果你编写的代码调用了sin(n),然后使用了cos(n),然后使用这两个结果,那么编译器将调用一个结构返回的sincos方法,接收一个包含两个东西的结构.如果操作数相同,则可以一次更快地工作,而不是单独处理.

在表面浏览中,我在initInterTab2D中看不到一个罪或者感觉,但是我期待着一些内在的内容.

虽然捅了我试过:

cd /Applications/Xcode.app/Contents/Developer/Platforms 
grep -lr ___sincos_stret *

通过这个,并使用nm可能的结果,我发现___sincos_stret函数暴露在两个iOS中,自7.0和OS X自10.9作为其libsystem_m.dylibs的一部分.例如.如果您的Xcode安装在默认位置,请尝试:

nm /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/usr/lib/system/libsystem_m.dylib | grep sincos

和/或:

nm /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/system/libsystem_m.dylib | grep sincos

你会看到任何一个的符号.因此,正确的解决方案是在Xcode中设置较旧的部署目标,或者在makefile中执行等效操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读