在 Linux 系统中,编译代码通常涉及使用编译器(如 gcc
、g++
、clang
)或构建工具(如 make
、cmake
)。以下是常见场景的编译命令和示例:
gcc hello.c -o hello # 编译 hello.c,生成可执行文件 hello
./hello # 运行程序
g++ hello.cpp -o hello # 编译 hello.cpp,生成可执行文件 hello
./hello
-O2
: 优化代码性能-Wall
: 显示所有警告-g
: 添加调试信息(用于 gdb)-I/path
: 指定头文件路径-L/path -llib
: 链接库文件gcc -Wall -O2 -I/usr/local/include -L/usr/local/lib -lmylib hello.c -o hello
gcc main.c utils.c -o program # 编译多个源文件
CC = gcc
CFLAGS = -Wall -O2
TARGET = myprogram
all: $(TARGET)
$(TARGET): main.c utils.c
$(CC) $(CFLAGS) $^ -o $@
clean:
rm -f $(TARGET)
make # 编译
make clean # 清理生成的文件
cmake_minimum_required(VERSION 3.10)
project(MyProject)
add_executable(myprogram main.c utils.c)
mkdir build && cd build # 创建构建目录
cmake .. # 生成 Makefile
make # 编译
./myprogram # 运行
javac Hello.java # 编译
java Hello # 运行
go build hello.go # 编译
./hello # 运行
rustc hello.rs # 编译
./hello # 运行
bash
ldd ./hello # 检查可执行文件的依赖库
bash
sudo apt install build-essential # Ubuntu/Debian 基础开发工具
sudo yum groupinstall "Development Tools" # CentOS/RHEL
找不到头文件:
-I
指定路径,或安装开发包(如 libxxx-dev
)。链接库失败:
-L
指定库路径,-l
指定库名(如 -lm
链接数学库)。权限问题:
bash
chmod +x hello
根据你的项目类型选择合适的工具和命令。如果是复杂项目,建议使用 make
或 cmake
管理编译流程。