在 Ubuntu 上,gcc 本身并不是通过“装插件”来扩展功能的,而是通过安装额外的开发包、工具链组件或编译器前端来实现类似“插件”的效果。下面分几种常见情况说明:
sudo apt update
sudo apt install gcc g++
查看版本:
gcc --version
例如 C++、Fortran、Objective-C:
sudo apt install g++ gfortran gobjc
如果你想自己写 GCC 插件(C 写的 .so 插件):
sudo apt install gcc-<version>-plugin-dev
例如:
sudo apt install gcc-11-plugin-dev
写插件示例(简化):
#include "gcc-plugin.h"
int plugin_init(struct plugin_name_args *plugin_info,
struct plugin_gcc_version *version) {
return 0;
}
编译:
gcc -shared -fPIC -I/usr/lib/gcc/x86_64-linux-gnu/11/plugin/include \
my_plugin.c -o my_plugin.so
使用:
gcc -fplugin=./my_plugin.so test.c
不需要安装插件,直接启用:
gcc -fsanitize=address -g test.c
常见:
-fsanitize=address-fsanitize=undefined-fsanitize=threadGCC 插件生态不如 Clang 活跃,很多人会换 Clang:
sudo apt install clang
Clang 插件更灵活,支持 Python/CMake 集成。
sudo apt install make cmake autoconf libtool pkg-config
你可以告诉我:
我可以给你更精确的命令和示例。