【问题标题】:Apple O-Match Linker error when trying to use Fast Corner Detector Success Labs尝试使用 Fast Corner Detector Success Labs 时出现 Apple O-Match 链接器错误
【发布时间】:2011-08-19 12:52:22
【问题描述】:

我正在尝试在我的应用中实现这一点:http://www.hatzlaha.co.il/150842/FAST-Corner-V2。他们共享完成我想要的编译项目。我试图在我的应用程序中使用它,但在复制函数后我被困在编译我的应用程序中。

我从编译器得到这个错误:

Ld /Users/wojciechradomski2/Library/Developer/Xcode/DerivedData/ARmgr-bxkvnxdnsjbaioahqhygfsmofpxn/Build/Products/Debug-iphoneos/ARmgr.app/ARmgr normal armv6
    cd /Users/wojciechradomski2/Documents/xCode/AR/ARmgr
    setenv IPHONEOS_DEPLOYMENT_TARGET 4.0
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-g++-4.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -L/Users/wojciechradomski2/Library/Developer/Xcode/DerivedData/ARmgr-bxkvnxdnsjbaioahqhygfsmofpxn/Build/Products/Debug-iphoneos -L/Users/wojciechradomski2/Documents/xCode/AR/ARmgr/ARmgr/opencv_device/lib -F/Users/wojciechradomski2/Library/Developer/Xcode/DerivedData/ARmgr-bxkvnxdnsjbaioahqhygfsmofpxn/Build/Products/Debug-iphoneos -filelist /Users/wojciechradomski2/Library/Developer/Xcode/DerivedData/ARmgr-bxkvnxdnsjbaioahqhygfsmofpxn/Build/Intermediates/ARmgr.build/Debug-iphoneos/ARmgr.build/Objects-normal/armv6/ARmgr.LinkFileList -dead_strip -lstdc++ -lz -miphoneos-version-min=4.0 -framework OpenGLES -framework AssetsLibrary -framework MobileCoreServices -framework MediaPlayer -framework QuartzCore -framework CoreVideo -framework CoreMedia -framework AVFoundation -framework Accelerate -framework UIKit -framework Foundation -framework CoreGraphics -lcv -lcxcore -o /Users/wojciechradomski2/Library/Developer/Xcode/DerivedData/ARmgr-bxkvnxdnsjbaioahqhygfsmofpxn/Build/Products/Debug-iphoneos/ARmgr.app/ARmgr

Undefined symbols for architecture armv6:
  "fast9_detect_nonmax(unsigned char const*, int, int, int, int, int*)", referenced from:
      -[CameraViewController captureOutput:didOutputSampleBuffer:fromConnection:] in CameraViewController.o
ld: symbol(s) not found for architecture armv6
collect2: ld returned 1 exit status

正如自述文件所说,我只需要导入 fast.h,我正在这样做。 我检查了所有的库、导入和框架——我都有。

即使是这样的情况也会显示上述错误:

fast9_score(NULL, NULL, NULL, NULL, NULL);

删除此行后,一切编译正常。

任何想法我错过了什么或做错了什么?

【问题讨论】:

  • 您提供的信息很少。您是否已将此库的源添加到您的项目/目标中?这些源代码是否也在编译?
  • 我不知道要添加什么。我有文件 fast.h 和 fast_9.c 我的项目中都有它们。如果我去目标编译源,我也有这个 fast_9.c 文件。
  • 当你说你导入它时,你的意思是作为你调用fast9_score的实际文件中的头文件,还是作为一个整体进入项目?确保你两者都做。 fast.h 是否有可能实现您所缺少的东西?另外,如果您将文件添加到您的项目中,您是否确保告诉 XCode 制作一个副本并将其放入项目组文件夹中?
  • 我有头文件作为#import,我的源代码树中也有这个文件。我也将所有文件复制到我的项目文件夹中。 fast.h 文件具有我在其他 .c 文件中实现的方法

标签: iphone objective-c compiler-errors


【解决方案1】:

我粗略地看了一下,缺少的函数是在 fast.cc 中定义的。所以请确保你的项目中有它,它会被编译并与你想要的目标链接。

编辑:提示:如果链接器中缺少符号,只需 grep 查找包含该符号的文件。您可能会找到定义它的那个...我刚刚在您在帖子中链接的项目的源目录中执行了“grep -r fast9_detect_nonmax *”,并找到了该文件。

【讨论】:

  • 好吧,这不完全是这个问题(我已经在项目中找到了所有文件),但是感谢您的帖子,我找到了解决方案。我添加了所有带有 .c 扩展名的库文件。将所有文件更改为 .cc 扩展项目后编译正常。
猜你喜欢
  • 2014-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多