尝试构建UETorch时Xcode 8.1中的链接器错误

时间:2016-12-05 23:05:00

标签: c++ xcode compiler-errors linker unreal-engine4

我一直在尝试使用Xcode为OSX 10.12构建UETorch,并遇到以下错误:

Undefined symbols for architecture x86_64:
  "FlushRenderingCommands()", referenced from:
      _CaptureScreenshot in Module.UETorch.cpp.o
      InitCapture(UObject*, IntSize const*, FViewport**, APlayerController**, UWorld**, FSceneView**) in Module.UETorch.cpp.o
  "FSlateApplication::CurrentApplication", referenced from:
      _CaptureScreenshot in Module.UETorch.cpp.o
      FSlateApplication::Get() in Module.UETorch.cpp.o
  "FSlateApplication::TakeScreenshot(TSharedRef<SWidget, (ESPMode)0> const&, FIntRect const&, TArray<FColor, FDefaultAllocator>&, FIntVector&)", referenced from:
      _CaptureScreenshot in Module.UETorch.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

似乎ld: symbol(s) not found...部分经常通过使用libstdc ++而不是libc ++来修复,我尝试将-stdlib=libstdc++添加到“Other Linker Flags”以及链接libstdc ++。6.0.9.dylib in Build Phases部分,但我仍然遇到同样的错误。

1 个答案:

答案 0 :(得分:1)

我没有评论的声誉,因此在此处添加它,当您尝试使用符号/调用函数并且链接器无法找到其定义时,您会得到未定义的符号。因此,如果定义来自某个库,则在链接阶段添加它。 您可以使用nm命令检查库中是否存在定义,例如“nm -D”