make & Makefile相关的文本编辑器有:vi, emacs等, 如: $ emacs lex.cC .2 编译生成目标文件,如: $ gcc -c lex.cC $ gcc -c plain.cC $ gcc -c name.cC $ gcc -c main.cC 如果源程序有误,返回 1⃝; .3 联结生成执行文件或库文件,如: $ gcc -o plain lex.o plain.o name.o main.oC 如果联结出错,如:出现未定义的函数 Makefile . 源文件、目标文件和执行文件的依赖关系图 . . plain gcc -o plain lex.o plain.o name.o main.o lex.o gcc -c lex.c plain.o gcc -c plain.c name.o gcc -c plain.c main.o gcc -c main.c lex.c lex.h plain.c name.c main main.o gcc -o ./plain plain.o lex.o name.o main.o lex.o: lex.c lex.h gcc -c lex.c plain.o: plain.c lex.h gcc -c plain.c name.o: name.c gcc -c name.c main.o: main.c gcc -c main.c $ makeC gcc -c lex0 码力 | 36 页 | 975.98 KB | 1 年前3
简明 X86 汇编语言教程 ...............................54 第八章 GCC 内联汇编基础..................................................................................................54 1. GCC 汇编格式 ................................... 符号常量,这样连操作堆 栈的过程也省掉了。 第三种结果属于“等效”代码,而不是“等价”代码。作为用户,很多时候是希望编译 器这样做的,然而由于目前的技术尚不成熟,有时这种做法会造成一些问题(gcc 和 g++的 顶级优化可以造成编译出的 FreeBSD 内核行为异常,这是我在 FreeBSD 上遇到的唯一一次软 件原因的 kernel panic),因此,并不是所有的编译器都这样做(另一方面的原因是,如果 GAS(free, Gnu Assembler),后一个和 GCC 结合在一起. 在这篇文章里我将集中在 Nasm 上, 把 GAS 放 在后面,因为它使用 AT&T 的语法, 需要一个长的介绍.Nasm 调用时应该带上 ELF 格式选 项("nasm -f elf hello.asm"); 产生的目标文件用 GCC 来链接("gcc hello.o"), 产生最终的 ELF 二进制代码. 下面的这个脚本可用来编译0 码力 | 63 页 | 598.28 KB | 1 年前3
Linux Lab v1.1 中文手册1 No working init found . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.4.2 linux/compiler-gcc7.h: No such file or directory . . . . . . . . . . . 65 6.4.3 linux-lab/configs: Permission denied Linux ELF》 – 提供了上百个实验案例,全部通过 Linux Lab 验证 • 《Rust 语言快速上手》 – 初步了解 Rust 语言、历史、特性、适应领域以及与嵌入式、Linux、GCC、GPU、 C/C++ 语言的关系并快速上手,所有实验全部通过 Linux Lab 验证 • 《软件逆向工程初探》 – 了解软件逆向工程的基本概念,掌握开展软件逆向相关技术、流程和方法,通过实验 提供上述组件的预先编译版本,并按开发板分类存放,可即时下载使用 4 根文件系统 支持 initrd,harddisk,mmc 和 nfs; ARM 架构提供 Debian 系统 5 Docker 包括 gcc-4.3 在内的交叉工具链已预先安装,还可灵活配置并下载外部交叉工具链 6 灵活访问 支持本地或网络访问,支持命令行和图形界面,支持 bash, ssh, vnc, web ssh, web vnc0 码力 | 70 页 | 1.53 MB | 1 年前3
Linux Lab v1.3 中文手册1 No working init found . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.4.2 linux/compiler-gcc7.h: No such file or directory . . . . . . . . . . . 68 6.4.3 linux-lab/configs: Permission denied Linux ELF》 – 提供了上百个实验案例,全部通过 Linux Lab 验证 • 《Rust 语言快速上手》 – 初步了解 Rust 语言、历史、特性、适应领域以及与嵌入式、Linux、GCC、GPU、 C/C++ 语言的关系并快速上手,所有实验全部通过 Linux Lab 验证 • 《软件逆向工程初探》 – 了解软件逆向工程的基本概念,掌握开展软件逆向相关技术、流程和方法,通过实验 提供上述组件的预先编译版本,并按开发板分类存放,可即时下载使用 4 根文件系统 支持 initrd,harddisk,mmc 和 nfs; ARM 架构提供 Debian 系统 5 Docker 包括 gcc-4.3 在内的交叉工具链已预先安装,还可灵活配置并下载外部交叉工具链 6 灵活访问 支持本地或网络访问,支持命令行和图形界面,支持 bash, ssh, vnc, web ssh, web vnc0 码力 | 73 页 | 1.54 MB | 1 年前3
Linux Lab v1.2 中文手册1 No working init found . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.4.2 linux/compiler-gcc7.h: No such file or directory . . . . . . . . . . . 68 6.4.3 linux-lab/configs: Permission denied Linux ELF》 – 提供了上百个实验案例,全部通过 Linux Lab 验证 • 《Rust 语言快速上手》 – 初步了解 Rust 语言、历史、特性、适应领域以及与嵌入式、Linux、GCC、GPU、 C/C++ 语言的关系并快速上手,所有实验全部通过 Linux Lab 验证 • 《软件逆向工程初探》 – 了解软件逆向工程的基本概念,掌握开展软件逆向相关技术、流程和方法,通过实验 提供上述组件的预先编译版本,并按开发板分类存放,可即时下载使用 4 根文件系统 支持 initrd,harddisk,mmc 和 nfs; ARM 架构提供 Debian 系统 5 Docker 包括 gcc-4.3 在内的交叉工具链已预先安装,还可灵活配置并下载外部交叉工具链 6 灵活访问 支持本地或网络访问,支持命令行和图形界面,支持 bash, ssh, vnc, web ssh, web vnc0 码力 | 73 页 | 1.53 MB | 1 年前3
跟我一起写 Makefile (PDF 重制版)2)。 在这篇文档中,将以 C/C++ 的源码作为基础,所以必然涉及一些关于 C/C++ 的编译的知识。关 于这方面的内容,还请各位查看相关的编译器的文档。这里所默认的编译器是 UNIX 下的 GCC 和 CC。 1.1 关于程序的编译和链接 在此,我想多说关于程序编译的一些规范和方法。一般来说,无论是 C 还是 C++,首先要把源文 件编译成中间代码文件,在 Windows 下也就是 .obj 参数会把一些标准库的头文件也包含进来。 gcc -M main.c 的输出是: main.o: main.c defs.h /usr/include/stdio.h /usr/include/features.h \ /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h \ /usr/lib/gcc-lib/i486-suse-linux/2 /usr/include/bits/wchar.h /usr/include/gconv.h \ /usr/lib/gcc-lib/i486-suse-linux/2.95.3/include/stdarg.h \ /usr/include/bits/stdio_lim.h gcc -MM main.c 的输出则是: main.o: main.c defs.h 那么,编译器的这个功能如何与我们的0 码力 | 81 页 | 628.51 KB | 1 年前3
openEuler 22.03 LTS SP2 技术白皮书支持重启补丁状态恢复。 • 支持 syslog。 6. 约束限制 • 当前仅支持 64 位系统。 • 当前仅支持 ELF 格式的热修复,不支持解释型语言,不支持纯汇编修改。 • 当前仅支持 GCC / G++ 编译器,且不支持交叉编译。 • 暂不支持 LTO 优化。 应用场景 1: CVE 补丁快速修复。 应用场景 2: 现网问题临时定位。 应用场景 24 openEuler 22 22.03 LTS SP2 技术白皮书 特性增强 GCC for openEuler GCC 编译器基于开源 GCC 10.3 版本开发,支持自动反馈优化、软硬件协同、内存优化、SVE 向量化、矢量化数学库等特性。 • 充分使能ARM架构的硬件特性,运行效率更高,在 SPEC CPU 2017 等基准测试中性能大幅优于上游社区的 GCC 10.3 版本。 • 支持 mcmodel=med 多版本 GCC 共存支持:提供以 GCC 12.2.0 为基线的 gcc-toolset-12 系列软件包,支持 Intel SPR 相关特性。 • 本次新增支持内核反馈优化特性。通过增强内核与 GCC,实现内核支持编译器反馈优化;用户可通过自动反馈优化工 具 A-FOT,一键构建针对特定场景优化的内核。 通用计算领域,运行 SPECCPU 2017 测试,相比于上游社区的 GCC 10.30 码力 | 48 页 | 5.62 MB | 1 年前3
openEuler 21.03 技术白皮书faults. GCC Kunpeng GCC implements in-depth software and hardware co-optimization, and explores the ultimate performance in fields such as Scalable Vector Extension (SVE) and pipelines. Kunpeng GCC has performance: Kunpeng GCC fully utilizes the hardware features of the Kunpeng server to achieve higher operating efficiency. In the benchmark tests such as SPEC CPU 2017, Kunpeng GCC delivers much better better performance than GCC 9.3 of the upstream community. 2. Open source: Kunpeng GCC provides innovative distributions, open sourced code, and other contributions to upstream communities. Feature0 码力 | 21 页 | 948.66 KB | 1 年前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化I 硬件要求: 64 位( 32 位时代过去了) 至少 2 核 4 线程(并行课…) 英伟达家显卡( GPU 专题) 软件要求: Visual Studio 2019 ( Windows 用户) GCC 9 及以上( Linux 用户) CMake 3.12 及以上(跨平台作业) Git 2.x (作业上传到 GitHub ) CUDA Toolkit 10.0 以上( GPU 专题) 第 0 章:汇编语言 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 8 位, 16 位, 32 位, 64 位版本 al, ax, eax, rax r15b, r15w, r15d, r15 AT&T 汇编语言 GCC 编译器所生成的汇编语言就属于这种 返回值:通过 eax 传出 movl $42, %eax 相当于: eax = 42; 前 6 个参数:分别通过 edi , esi , edx , ecx 的倍数,也可以这样写: 编译器会发现 n % 4 = 0 ,从而不会生成边界特判的分支 。 假定指针是 16 字节对齐的: assume_aligned 如果能保证指针 a 总是对齐到 16 字节,在 GCC 编译器中这样 写: 但这样不通用,因此 C++20 引入了标准化的 std::assume_aligned : movups 变成了 movaps 对齐的读写可能 带来微乎其微的 性能提升……0 码力 | 108 页 | 9.47 MB | 1 年前3
05. 李枫 用于 Linux 内核调试的 Python s-networking-data- path-programmable-with-bpf-and-xdp-daniel-borkmann-covalent GCC (GCC support for eBPF is on the way) https://www.phoronix.com/scan.php?page=news_item&px=G NU-Binutils-eBPF-Support CC-10-eBPF-Backend-Plans //Oracle Is Aiming To Contribute An eBPF Backend To The GCC 10 Compiler https://www.phoronix.com/scan.php?page=news_item&px=O racle-More-DTrace-Linux-eBPF phoronix.com/scan.php?page=news_item&px=O racle-GCC-10-eBPF-V2 //2019-8-17::Oracle Continues Working On eBPF Support For GCC 10 https://www.phoronix.com/scan.php?page=news_item&px=G0 码力 | 63 页 | 4.07 MB | 1 年前3
共 195 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20













