我正在尝试运行Hadoopy,但在OS X上遇到编译错误:
ImportError: Building module failed: ["CompileError: command 'llvm-gcc-4.2' failed with exit status 1\n"
Run Code Online (Sandbox Code Playgroud)
我有/Developer/usr/bin我的$PATH,并在OS X Lion 10.7上运行最新版本的XCode.Cython是通过安装的easy_install.
全输出:
>>> import pyximport; pyximport.install()
>>> import hadoopy
/Users/dolan/.pyxbld/temp.macosx-10.7-intel-2.7/pyrex/hadoopy/_main.c:236:22: error: getdelim.h: No such file or directory
/Users/dolan/.pyxbld/temp.macosx-10.7-intel-2.7/pyrex/hadoopy/_main.c:236:22: error: getdelim.h: No such file or directory
/Users/dolan/.pyxbld/temp.macosx-10.7-intel-2.7/pyrex/hadoopy/_main.c: In function ‘__pyx_f_7hadoopy_5_main_11HadoopyTask_read_offset_value_text’:
/Users/dolan/.pyxbld/temp.macosx-10.7-intel-2.7/pyrex/hadoopy/_main.c:4399: warning: implicit conversion shortens 64-bit value into a 32-bit value
lipo: can't open input file: /var/folders/8b/n0j5pn_13qn_x8p2v4f848zh0000gn/T//ccC8x2Ex.out (No such file or directory)
Traceback (most recent call …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行Apple文档示例代码,放在此链接上...
但是,当我运行此代码时,XCode无法编译.它显示了几个错误,指出未定义下面列出的变量.
我的理解是,很明显Xcode无法对这个const变量进行过滤,看起来它们来自OpenGL框架.我检查了我导入的框架列表,里面有OpenGL.
怎么解决这个?
OS version : MacOSX 10.7.3
Base SDK of the project : MacOSX SDK 10.7
Compiler : Defualt LLVC GCC 4.2
Run Code Online (Sandbox Code Playgroud) 根据一些教科书,编译器将使用sub*为局部变量分配内存。
比如我写了一个Hello World程序:
int main()
{
puts("hello world");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想这将在 64 位操作系统上编译为一些汇编代码:
subq $8, %rsp
movq $.LC0, (%rsp)
calq puts
addq $8, %rsp
Run Code Online (Sandbox Code Playgroud)
所述subq分配8字节存储器(一个点的大小),用于该参数和addq解除分配它。
但是当我输入时gcc -S hello.c(我在 Mac OS X 10.8 上使用 llvm-gcc),我得到了一些汇编代码。
.section __TEXT,__text,regular,pure_instructions
.globl _main
.align 4, 0x90
_main:
Leh_func_begin1:
pushq %rbp
Ltmp0:
movq %rsp, %rbp
Ltmp1:
subq $16, %rsp
Ltmp2:
xorb %al, %al
leaq L_.str(%rip), %rcx
movq %rcx, %rdi
callq _puts
movl $0, -8(%rbp)
movl -8(%rbp), %eax …Run Code Online (Sandbox Code Playgroud) 这是构建的日志.这是Xcode 4中的一个全新项目,因此其中唯一的非常规项目如下:
我一直在玩构建设置并在几个小时内搜索答案,看它是否会消失,但事实并非如此.任何帮助你将不胜感激.
我知道ARC和MRC的工作原理。但是在测试以下代码时我感到困惑。我不知道为什么会这样。为什么对于相同的问题,在调试模式和运行模式下保留计数不同?
NSMutableArray *a = [NSMutableArray array];
[a addObject:@"abc"];
NSLog(@" 1 Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)a));
__weak NSMutableArray *b = a;
NSLog(@" 2 Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)a));
a = nil;
NSLog(@" 3 Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)b));
[b addObject:@"xys"];
NSLog(@" 4 Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)b));
Run Code Online (Sandbox Code Playgroud)
当我在运行模式下运行应用程序时,NSLog(@" 3 Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)b));由于b是a的weak引用,因此我认为该应用程序崩溃。并在分配nil给对象时反对获取释放。但在此之前,如果将前两行的输出显示为下图。这也是正确的。
但是,当应用程序处于调试模式(意味着我们已设置断点和调试)时,该应用程序不会崩溃,并且每行还显示保留计数2。如下图所示。
有谁知道为什么会这样吗?为什么相同的代码为不同的模式赋予两个不同的保留值?
memory-management llvm-gcc ios automatic-ref-counting retain-cycle