gcc实用命令记录

记录几个不常用但比较实用的gcc命令

1. 查看编译器自带的宏定义

# gcc -E -dM -< /dev/null | grep INT32
#define __UINT32_MAX__ 0xffffffffU
#define __INT32_MAX__ 0x7fffffff
#define __INT32_C(c) c
#define __UINT32_TYPE__ unsigned int
#define __UINT32_C(c) c ## U
#define __INT32_TYPE__ int

2. 查看编译器的编译信息

查看编译器的头文件寻找路径,编译器配置选项,如果是交叉编译工具链可能有-mcpu,-mfpu等浮点cpu类型信息:

 gcc --verbose *.c
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/10.3.1/lto-wrapper
目标:x86_64-linux-gnu
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin --enable-initfini-array --disable-libgcj --without-isl --without-cloog --enable-gnu-indirect-function --build=x86_64-linux-gnu --with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags=' -Wl,-z,relro,-z,now' --disable-bootstrap --with-tune=generic --with-arch_32=x86-64 --disable-multilib
线程模型:posix
Supported LTO compression algorithms: zlib
gcc 版本 10.3.1 (GCC)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-linux-gnu/10.3.1/cc1 -quiet -v exec_ex.c -quiet -dumpbase exec_ex.c -mtune=generic -march=x86-64 -auxbase exec_ex -version -o /tmp/ccIEgwqA.s
GNU C17 (GCC) 版本 10.3.1 (x86_64-linux-gnu)
        由 GNU C 版本 10.3.1 编译,GMP 版本 6.2.1,MPFR 版本 4.1.0,MPC 版本 1.2.0,isl 版本 none
GGC 准则:--param ggc-min-expand=100 --param ggc-min-heapsize=131072
忽略不存在的目录“/usr/lib/gcc/x86_64-linux-gnu/10.3.1/include-fixed”
忽略不存在的目录“/usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../../x86_64-linux-gnu/include”
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
 /usr/lib/gcc/x86_64-linux-gnu/10.3.1/include
 /usr/local/include
 /usr/include
搜索列表结束。
GNU C17 (GCC) 版本 10.3.1 (x86_64-linux-gnu)
        由 GNU C 版本 10.3.1 编译,GMP 版本 6.2.1,MPFR 版本 4.1.0,MPC 版本 1.2.0,isl 版本 none
GGC 准则:--param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: d3089ed0a950f895908bdbcbae0dadc7
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
 as -v --64 -o /tmp/ccogKt24.o /tmp/ccIEgwqA.s
GNU assembler version 2.37 (x86_64-openEuler-linux) using BFD version (GNU Binutils) 2.37
COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/10.3.1/:/usr/libexec/gcc/x86_64-linux-gnu/10.3.1/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10.3.1/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/10.3.1/:/usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-linux-gnu/10.3.1/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/10.3.1/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/10.3.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccIww6uO.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../../lib64/crti.o /usr/lib/gcc/x86_64-linux-gnu/10.3.1/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/10.3.1 -L/usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../.. /tmp/ccogKt24.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/10.3.1/crtend.o /usr/lib/gcc/x86_64-linux-gnu/10.3.1/../../../../lib64/crtn.o
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=x86-64'

3. 查看glibc版本

注意区分gcc版本合glibc版本,gcc版本多个方式均可获取,如

gcc -E -dM -< /dev/null | grep __GNUC
#define __GNUC__ 10
#define __GNUC_PATCHLEVEL__ 1
#define __GNUC_STDC_INLINE__ 1
#define __GNUC_MINOR__ 3

而glibc版本可以通过直接执行libc.so获取:

# ls /lib64/libc.so.6
/lib64/libc.so.6
# /lib64/libc.so.6
GNU C Library (GNU libc) stable release version 2.34.
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 10.3.1.
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
.

可以看出glibc版本为2.34,gcc版本为10.3.1

你可能感兴趣的:(随笔,linux,c语言)