实战经验:如何在Linux上编译静态链接程序

实战经验:如何在Linux上编译静态链接程序

作者:BlogUpdater |  时间:2017-04-06 |  浏览:2624 |  评论已关闭 条评论
有时候需要在Linux上编译静态链接C库的程序,这样就可以将编译出来的程序直接拷贝到其他Linux系统上直接运行,而无需担心目标系统的C库版本是否兼容。
具体方法如下:
首先安装C库:yum install glibc-static
編譯:
OBJS = main.o
CC = gcc
CFLAGS = -Wall -O -g -m32 -march=i386 -mtune=i386 -static -static-libgcc
TARGET = ./dot_matrix
DIR_SRC = ./src
DIR_INC = ./inc
INCLUDE = -I$(DIR_INC)
%.o: %.c
    $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
SOURCES = $(wildcard $(DIR_SRC)/*.c)
OBJS = $(patsubst $(DIR_SRC)/%.c, $(DIR_SRC)/%.o, $(SOURCES))
$(TARGET): $(OBJS)
    $(CC) $(CFLAGS) $(INCLUDE) $(OBJS) -o $(TARGET)
    chmod +x $(TARGET)
clean:
    rm -rfv $(DIR_SRC)/*.o $(TARGET)
需要特别注意上文中红色的部分。
标签:

评论已关闭。