GCC-plugin自定义语句(未完成版本)

GCC-plugin自定义语句

安装

  1. gcc源码编译安装
./configure --prefix=path/to/install 
  1. 网络安装
sudo apt-get install gcc
sudo apt-get install gcc-number-plugin-dev  //number为自身的GCC版本
  1. 查看GCC是否支持GCC-plugin
命令行输入以下代码:
gcc -print-file-name=plugin

出现以下结果,说明支持,该结果是一个路径

bbq@ubuntu:~$ gcc -print-file-name=plugin
/usr/lib/gcc/x86_64-linux-gnu/11/plugin

安装完成后会出现以下界面,会有部分头文件供使用
在这里插入图片描述
gcc-plugin的使用链接可以参考

简单示例

  1. 新建简单的plugin1.c
    详细源码内容
/* ------ plugin1.c ------ */

#include "gcc-plugin.h"
#include "plugin-version.h"

int plugin_is_GPL_compatible;

int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
{
    if (!plugin_default_version_check(version, &gcc_version)) 
    {
	printf("incompatible gcc/plugin versions\n");
	return 1;
    }
    printf("Hello world!\n");
    return 0;
} 

  1. 新建plugin1_test.c
/* ------ plugin1_test.c ------ */

#include <stdio.h>

int main()
{
    /* Whatever you like. */
    return 0;
}
  1. 编译命令
g++ -std=c++11 -Wall -fno-rtti -I/usr/lib/gcc/x86_64-linux-gnu/11/plugin/include -fPIC -c -o plugin1.o  plugin1.c
g++ -shared -o plugin1.so ./plugin1.o
gcc -fplugin=./plugin1.so plugin1_test.c -o plugin1_test.o

自定义原语

参考链接:https://zhuanlan.zhihu.com/p/49490338

https://gcc.gnu.org/onlinedocs/gccint/Plugins.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: gcc-arm-none-eabi是针对ARM架构的嵌入式系统开发的GNU工具链。它是ARM公司官方推荐的工具链之一,常用于开发ARM Cortex-M系列微控制器。gcc-arm-none-eabi的版本命名规则是X.Y.Z,其中X表示主版本号,Y表示次版本号,Z表示修订号。 以gcc-arm-none-eabi-9-2019-q4-major为例,其中9表示主版本号,2019表示年份,q4表示季度(第4季度),major表示此版本是主要版本版本号的更迭主要是为了修复一些已知的漏洞和错误,增加新功能和优化性能。每个版本都可能有一些兼容性的变化,以及对新硬件的支持。因此,选择正确的gcc-arm-none-eabi版本是很重要的,以确保代码的正确编译和运行。 在选择gcc-arm-none-eabi版本时,可以考虑以下几个因素: 1. 目标平台:确保选择的版本支持目标平台的处理器架构和指令集。 2. 功能需求:查看版本发布说明,了解该版本是否具有您需要的新功能或改进。 3. 兼容性:与其他软件工具(如调试器、RTOS等)的兼容性,确保它们能够配合使用。 4. 社区支持:查看开源社区中对该版本的评价和反馈,了解其稳定性和可靠性。 总之,选择合适的gcc-arm-none-eabi版本是进行ARM嵌入式系统开发的重要环节,需要仔细考虑目标平台和功能需求,确保开发过程和项目的顺利进行。 ### 回答2: gcc-arm-none-eabi是一款针对ARM架构的嵌入式系统开发工具链。它是GNU开发工具链的一部分,专门用于编译ARM处理器的裸机程序或嵌入式系统代码。gcc-arm-none-eabi提供了C、C++和汇编语言的编译器,以及链接器、调试器和其他开发工具。它支持多种ARM处理器系列,包括Cortex-M系列和Cortex-R系列。 gcc-arm-none-eabi的版本号表示了工具链的发布版本。例如,版本为9-2020-q2-update表示是在2020年第二季度发布的第9版更新。不同版本gcc-arm-none-eabi可能会包含不同的功能改进和修复,例如增强的编译器优化、新的设备支持和更好的调试功能。 选择合适的gcc-arm-none-eabi版本对于开发嵌入式系统非常重要。在选择版本时,一方面需要考虑所需的功能和设备支持,另一方面也要考虑与其他工具和库的兼容性。通常建议使用最新的稳定版本,以确保能够获得最新的功能和修复。 为了使用gcc-arm-none-eabi,我们首先需要将其安装在开发环境中,并设置好相应的环境变量。然后,我们可以使用gcc命令来编译和链接程序,并使用调试器进行调试。gcc-arm-none-eabi还提供了一些其他的工具,如objdump和gdb,用于查看和分析编译后的程序。 总之,gcc-arm-none-eabi是一款强大的嵌入式系统开发工具链,它提供了编译器、链接器和调试器等工具,用于开发ARM架构的裸机程序和嵌入式系统代码。选择适合的版本对于开发嵌入式系统至关重要,开发者可以根据需求选择最新的稳定版本。 ### 回答3: gcc-arm-none-eabi是GNU Compiler Collection (GCC) 的一个特殊版本,专门用于嵌入式系统开发,特别是针对使用ARM处理器的嵌入式设备。 根据具体的版本号来选择gcc-arm-none-eabi的版本是很重要的,因为每个版本都可能有不同的特性和优化。以下是一些常见的gcc-arm-none-eabi版本: 1. gcc-arm-none-eabi 4.x.x:这是早期版本,通常用于ARM处理器的较早的系列,如ARMv7和较旧的ARM Cortex-M系列。这些版本可能不支持一些新的ARM指令集和优化,但它们在大多数嵌入式应用中仍然很常见。 2. gcc-arm-none-eabi 5.x.x:这是较新的版本,支持更多ARM指令集和优化。它适用于绝大多数ARM Cortex-M系列处理器,包括较新的Cortex-M3、Cortex-M4和Cortex-M7。 3. gcc-arm-none-eabi 6.x.x:这是进一步改进和优化的版本,提供更好的性能和代码生成质量。它通常用于最新的ARM Cortex-M系列,如Cortex-M4、Cortex-M7和最新的Cortex-M33。 4. gcc-arm-none-eabi 7.x.x:这是当前正在积极开发和维护的版本,为最新的ARM Cortex-M系列提供了广泛的支持,并且还有一些新的优化和特性。这个版本被认为是ARM嵌入式开发的首选版本。 通过选择最适合目标设备的gcc-arm-none-eabi版本,开发者能够充分利用特定版本所提供的功能和改进,以获得更好的性能和更高的代码生成质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值