tinycc
gcc
gcc编译可以分为四个主要阶段:预处理、编译、汇编和链接
- CPPFLAGS: 指定预处理器(c/c++ PreProcessor)的选项或标志,例如头文件路径(通过 -I 选项指定)、宏定义(通过 -D 选项指定)。
- CFLAGS: 指定C编译器的选项;CXXFLAGS: 指定C++编译器的选项
- LDFLAGS: 指定链接器(c/c++ linker)的选项或标志,例如库文件的搜索路径、需要链接的库以及链接器的行为控制选项。
- CPATH: 指定头文件搜索路径,适用于所有语言。类似于-I选项,但在命令行上用-I给出的任何路径之后使用
- LIBRARY_PATH: 在链接阶段使用的库搜索路径。这类似于-L选项,用来指定链接时需要搜索的库目录
- LD_LIBRARY_PATH: 运行时动态链接器使用的库搜索路径。这个环境变量影响程序在运行时如何找到所需的共享库(.so文件)
- LANG:指定编译器要使用的字符集;LC_ALL:覆盖所有局部化设置,包括字符分类等
编译安装gcc:
# 1. 安装编译工具
yum groupinstall -y 'Development Tools'
yum install -y texinfo bison flex gcc-gnat glibc-devel.i686 libgcc.i686
# 安装i686的包是为了安装32位的头文件和库,如果不安装i686的包,请在configure时加入--disable-multilib,取消对32位的支持
# 2. 下载gcc 8.2.0
wget https://github.com/gcc-mirror/gcc/archive/refs/tags/releases/gcc-8.4.0.zip
# 3. 解压源码包
tar -xzf gcc-8.2.0.tar.gz
# 4. 下载gcc需要的依赖: gmp, mpfr, mpc, isl
cd gcc-8.2.0
./contrib/download_prerequisites
# 5. 执行configure生成Makefile:
mkdir /usr/local/gcc-8.2.0 && mkdir build
cd build && ../configure --prefix=/usr/local/gcc-8.2.0 \
--enable-bootstrap \
--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-languagees=c,c++,objc,obj-c++ \
--enable-plugin \
--enable-initfini-array \
--disable-libgcj \
--enable-gnu-indirect-function \
--with-tune=generic \
--with-arch_32=x86-64 \
--build=x86_64-redhat-linux
# 查看当前版本gcc编译时用的参数命令:
echo | gcc -v -x c -E -
# 5. 执行编译:
cat /proc/cpuinfo | grep processor
make -j2
# 6. 安装
make install
# 7. 配置环境变量
export GCC_HOME=/usr/local/gcc-8.2.0
export PATH=$PATH:$GCC_HOME/bin
export MANPATH=$GCC_HOME/share/man
export CPATH=$GCC_HOME/include
export LD_LIBRARY_PATH=$GCC_HOME/lib:$GCC_HOME/lib64
export LIBRARY_PATH=$GCC_HOME/lib:$GCC_HOME/lib64
clang
msvc
-
下载生成工具
-
安装生成工具
-
只勾选“使用C++的桌面开发”,并在它的安装详情中,勾选
- “MSVC v142 - VS 2022 C++ x64/x86 生成工具”
- Windows 11 SDK
- 用于windows的C++ CMake工具
汇编生c,c生万物。
看c代码可以想象出其背后的汇编代码,c语言本质上是“可移植汇编”
本文发表于 0001-01-01,最后修改于 0001-01-01。
本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。