-arch arch
为指定的目标体系结构arch编译.允许值为'i386','x86_64','ppc'和'ppc64'.多个选项有效,并指示编译器生成"通用"二进制文件,包括使用-arch指定的每个体系结构的对象代码.仅当汇编程序和库可用于指定的每个体系结构时,此选项才有效.(仅限苹果)
那么这两个调用之间的区别是什么:
gcc -arch i386 program.c
和
gcc -m32 program.c
它是否只是-arch更强大,因为它更灵活,并且在指定多个拱时可以生成通用二进制文件?
我不确定,但是通过阅读手册页,我得到了与你相似的结论.
我想唯一真正的区别是-arch
可以用来创建通用二进制文件.
因为这可以创建通用二进制文件
gcc -arch i386 -arch x86_64 foo.c
Run Code Online (Sandbox Code Playgroud)
但你实际上不能确定下面的语义应该是什么(它们甚至可能是无效的语法).特别是第三个应该是无效的,因为手册页说要为32位或64位环境生成.
gcc -m32 -arch i386 -arch x86_64 foo.c
gcc -m64 -arch i386 -arch x86_64 foo.c
gcc -m32 -m64 -arch i386 -arch x86_64 foo.c
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)-m32 -m64 Generate code for a 32-bit or 64-bit environment. The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any i386 system. The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMDs x86-64 architecture. For darwin only the -m64 option turns off the -fno-pic and -mdynamic-no-pic options. -arch //already included in question
归档时间: |
|
查看次数: |
15500 次 |
最近记录: |