致命错误:的Mach-O / dyld.h:没有这样的文件或目录(fatal error: mach

2019-10-23 18:45发布

我试图编译在我的Ubuntu 14这种源: https://github.com/Bohdan-Khomtchouk/HeatmapGenerator/blob/master/HeatmapGenerator2_Macintosh_OSX.cxx 。

要编译此源代码,这样做: fltk-config --use-images --use-gl --compile HeatmapGenerator2_Macintosh_OSX.cxx

不过,我找回了以下错误:

HeatmapGenerator2_Macintosh_OSX.cxx:52:25: fatal error: mach-o/dyld.h: 
No such file or directory
  #include <mach-o/dyld.h>
                          ^
compilation terminated.

我看着http://ubuntuforums.org/showthread.php?t=1623945但它并没有帮助解决我的问题。

#include <mach-o/dyld.h>不是一个有效的预处理程序在Ubuntu指令? 人们似乎很少写在互联网上。 也许这是一个可能不包含在Ubuntu苹果专用库?

如何绕过这个错误并成功地生成二进制可执行文件任何建议都非常赞赏。

编辑

当我注释掉#include <mach-o/dyld.h>预处理指令,我得到以下错误:

HeatmapGenerator_Macintosh_OSX.cxx:568:13: error: use of undeclared identifier
      '_NSGetExecutablePath'
        if (_NSGetExecutablePath(path, &size) == 0)

有没有办法绕过这个错误,而无需使用该预处理器指令? _NSGetExecutablePath只在src使用一次,也许存在一种替代...

Answer 1:

这源代码,只是因为它的设计使用OSX的不会在Linux下编译dylib (动态加载),而不是linux的动态加载程序。

可能的解决方案:

  • “端口”从OSX的源代码到Linux。
  • 使用OSX对文件进行编译。


文章来源: fatal error: mach-o/dyld.h: No such file or directory