在 Ubuntu 上“给 gcc 装插件”通常有几种不同含义,下面按最常见情况给你讲清楚,你可以对号入座。
这是最常见需求。
sudo apt update
sudo apt install gcc
查看版本:
gcc --version
sudo apt install gcc-11 g++-11
切换默认版本:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
sudo update-alternatives --config gcc
GCC 支持 插件机制(C 写的),常用于:
sudo apt install gcc-<版本>-plugin-dev
例如:
sudo apt install gcc-11-plugin-dev
这会提供:
/usr/lib/gcc/x86_64-linux-gnu/11/plugin/include/
插件代码(简单的 test.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) {
printf("Hello from GCC plugin!\n");
return 0;
}
编译:
gcc -I/usr/lib/gcc/x86_64-linux-gnu/11/plugin/include \
-fPIC -shared -o test.so test.c
使用:
gcc -fplugin=./test.so test.c
其实很多“插件”是:
-fsanitize=address-fplugin-flto-fanalyzer例如:
sudo apt install gcc-11
gcc-11 -fsanitize=address test.c
如果你是:
可以告诉我你用的工具。
| 目的 | 命令 |
|---|---|
| 装 gcc | sudo apt install gcc |
| 装 gcc 插件开发环境 | sudo apt install gcc-<ver>-plugin-dev |
| 用 gcc 插件 | -fplugin=xxx.so |
如果你能说清楚:
我可以直接给你精确命令。