一年多来,我一直在使用XCode 4.5使用OS X 10.7 sdk构建应用程序,目标部署到10.6。
该应用程序可以在10.6、10.7、10.8和10.9上完美运行。但是,当我在10.10上运行它时,我在控制台中收到一条消息,提示该应用程序“无法强制硬页面归零”。
谷歌搜索“无法强制硬页面归零”没有任何帮助。
有谁知道这意味着什么?
有用的信息之一是,使用XCode 5构建应用程序不会导致问题,因此我认为它与较早的XCode 4.5有关。
如果要解决此问题,我宁愿使用旧版XCode,因为如果不需要,我会犹豫是否要改用XCode 5。
非常感谢任何见解。
编辑1:我发现在优胜美地上以32位模式打开应用程序。因此,只有64位模式才出现问题。
编辑2:这是Ken要求的otool的输出:
加载命令0
指令LC_SEGMENT_64
命令大小72
segname __TEXT
vmaddr 0x00000001007f9000
vmsize的0x0000000000225dba
文件关闭0
文件大小2251422
maxprot rwx
初始化保护
nsects 0
标志(无)
加载命令1
cmd LC_UNIXTHREAD
cmdsize 184
风格x86_THREAD_STATE64
计数x86_THREAD_STATE64_COUNT
rax 0x0000000000000000 rbx 0x0000000000000000 rcx 0x0000000000000000
rdx 0x0000000000000000 rdi 0x0000000000000000 rsi 0x0000000000000000
rbp 0x0000000000000000 rsp 0x0000000000000000 r8 0x0000000000000000
r9 0x0000000000000000 r10 0x0000000000000000 r11 0x0000000000000000
r12 0x0000000000000000 r13 0x0000000000000000 r14 0x0000000000000000
r15 0x0000000000000000 rip 0x0000000100a1e3d8
rflags 0x0000000000000000 cs 0x0000000000000000 fs 0x0000000000000000
gs 0x0000000000000000
最佳答案
我遇到了非常类似的问题。 otool -lV显示了类似的段结构。我发现该问题实际上是由使用UPX(3.08)的可执行文件打包引起的。如果已将UPX应用于二进制文件,请运行upx -d解压缩二进制文件,然后尝试再次在Yosemite上运行它。我刚刚提交的错误报告中描述了与我的问题相关的讨论:
https://sourceforge.net/p/upx/bugs/238/
关于xcode - 在10.6至10.9上运行的OS X应用程序无法在10.10(Yosemite)上运行-为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26351831/