- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是新手,我正在尝试将 64 位编译文件链接到 32 位目标文件,但出现此错误:
ld: 警告:忽略文件 Estudiant.o,文件是为不受支持的文件格式构建的 ( 0x7f 0x45 0x4c 0x46 0x 1 0x 1 0x 1 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 )这不是被链接的架构(x86_64):Estudiant.o体系结构 x86_64 的 undefined symbol :
我想我需要在 linux 中安装 g++-multilib,但我找不到 osx 的等效项。有谁知道如何解决这个问题?
最佳答案
在 Linux 和 OS X 上,您只能将所有 64 位目标文件和库链接在一起,或者将所有 32 位目标文件和库链接在一起。关于库,两个操作系统使用不同的方法来管理 32 位和 64 位的共存。
在 Linux 上,使用 multilib-approach,其中有相同库的 32 位和 64 位版本,通常具有相同的名称但位于两个不同的目录中,例如/lib 和/lib64。
在 OS X 上,使用 fat-binary 方法,其中单个库或可执行文件同时包含 32 位和 64 位目标文件,所有这些都在一个文件中(几年前会有库包含4 种不同的版本,PPC 32、PPC 64、x86 32、x86 64)。
这就是为什么在 OS X 上没有直接等同于 multilib 的原因,你没有多个库只是因为你需要 32 位和 64 位!
要构建应用程序,您需要始终将所有目标文件构建为 32 位或 64 位(就像在 Linux 上一样,您不能在任何一个系统上混用)然后,好吧,希望所有库使用包含(至少)您需要的版本。否则,您需要开始研究构建所需的库,但系统随附的大多数内容都应该同时支持 32 位和 64 位。
关于c++ - 什么是 OSX 等同于 Linux g++-multilib 的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18834235/
判断这2个相似的Uris实际上相同的标准方法是什么? var a = new Uri("http://sample.com/sample/"); var b = new Uri("http://sam
这个问题在这里已经有了答案: Why does "true" == true show false in JavaScript? (5 个答案) 关闭 5 年前。 可能我很困惑,但我无法理解这个愚蠢
我是一名优秀的程序员,十分优秀!