pyt*_*nic 4 c linux gcc x86-64
我正在尝试编译静态库.我按照在回答这个问题时给出的步骤,但它不起作用.以下是我的makefile.
PROJECT = lq.a
OBJECTS = dlmalloc.o queue.o.o
CFLAGS = -o -Wall -pedantic
all: $(PROJECT)
.c.o:
gcc -c $(CFLAGS) $<
$(PROJECT): $(OBJECTS)
libtool -o $(PROJECT) -static $(OBJECTS)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
libtool: unrecognized option `-o'
Run Code Online (Sandbox Code Playgroud)
编写这个makefile的正确方法是什么?
您可以使用以下语法使用该程序ar
创建静态库:
ar rcs my_library.a file1.o file2.o
Run Code Online (Sandbox Code Playgroud)
所以,在你的情况下:
$(PROJECT): $(OBJECTS)
ar rcs $(PROJECT) $(OBJECTS)
Run Code Online (Sandbox Code Playgroud)
您可以在手册页上找到有关选项的说明,但基本上:
r
说将给定的目标文件插入到存档中(替换同一事物的任何旧版本)c
如果它已经存在,则创建存档(通常无论如何都会发生,但此选项会禁止警告).s
说将对象文件索引写入存档.