后浪笔记一零二四

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

  1. 下载生成工具

  2. 安装生成工具

  3. 只勾选“使用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 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image