Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何为错误的系统和交叉编译问题编译目标代码?_Macos_Cross Compiling - Fatal编程技术网

Macos 如何为错误的系统和交叉编译问题编译目标代码?

Macos 如何为错误的系统和交叉编译问题编译目标代码?,macos,cross-compiling,Macos,Cross Compiling,关于编译的参考资料。我不明白我的Mac程序怎么能使用right-arch,用那些-arch标志编译,-arch标志用于我所在的系统(ppc64 g5),但仍然产生错误的目标代码 另外,如果我使用交叉编译器,在Linux上为mac生成10.5代码,这与我上面描述的有什么不同 背景是我尝试编译各种apache模块。他们使用-arch-ppc、ppc64等进行编译。我没有收到任何错误,我得到了我的mod_。但是,apache总是抱怨找不到某些符号。显然,它与编译器生成的内容有关,尽管文件类型表示它是针

关于编译的参考资料。我不明白我的Mac程序怎么能使用right-arch,用那些-arch标志编译,-arch标志用于我所在的系统(ppc64 g5),但仍然产生错误的目标代码

另外,如果我使用交叉编译器,在Linux上为mac生成10.5代码,这与我上面描述的有什么不同

背景是我尝试编译各种apache模块。他们使用-arch-ppc、ppc64等进行编译。我没有收到任何错误,我得到了我的mod_。但是,apache总是抱怨找不到某些符号。显然,它与编译器生成的内容有关,尽管文件类型表示它是针对ppc、ppc64、i386、x_64(通用二进制)的,并且似乎与所有其他文件都匹配

我想我不明白它怎么能为我的系统编译而没有问题,然后说我的系统不能使用它。也许我不明白编译器到底给了我什么

编辑:可以看到所有错误消息和整个过程


谢谢。

看看其他线程和其他地方,如果没有G5或OSX服务器安装,我只能提出一些意见和建议,但也许它们会有所帮助

  • 修改o/s供应商安装的软件通常不是一个好主意。安装一个新的Apache模块比覆盖一个现有的库问题要小,但您仍然要受供应商的摆布,因为软件更新可能会删除您的修改,除此之外,您还必须首先了解供应商的版本是如何构建的。OSX世界中的一种常见做法是,通过完全独立地安装开源产品(如Apache)来避免这种情况,例如,使用。这也有其缺点:为了实现高水平的独立性,MacPorts通常会下载并构建许多依赖于OSX的软件包,但除了一些额外的构建周期和磁盘空间之外,这并没有什么坏处

  • 也就是说,应该可以构建和安装apache模块来补充苹果提供的模块。苹果确实公布了它对开源产品所做的修改;您可以深入到各个版本中,找到包含源代码、Makefile和应用补丁的apache目录。这可能会有所帮助

  • 确保您构建的mod_*.so是真正的64位,并且不依赖于任何非64位库。使用
    otool-L mod.*.so
    查看每个库引用的动态库,然后在这些库上使用
    file
    ,以确保它们都有ppc64变体

  • 确保您使用的是最新的开发人员工具(Xcode 3.1.3是最新版本)

  • 虽然开发者工具链使用了许多开源组件,但苹果已经对其中的许多组件进行了增强,并且在OS X的ABI、通用二进制支持、动态库等方面存在很大差异。底线是在Linux(或任何其他非OS X平台)上交叉编译针对OS X的目标代码既不受支持也不实用


  • 你需要更具体一些。您到底看到了哪些错误消息?