从其他依赖对象文件创建目标文件

时间:2016-12-27 19:11:14

标签: c gcc

我的文件依赖项a.ca.hb.cb.hc.cc.h就是这样:

// a.c
#include "a.h"
#include "b.h"
#include "c.h"
#include <lib>

// b.c
#include "b.h"
#include <lib>

// c.c
#include "c.h"
#include <lib>

我没有main()功能。我需要创建out.o,其他人会在他的程序中使用main(他必须编写#include "a.h"来使用我在那里写的函数。)

所以我写了

gcc -std=c99 -c c.c -o c.o -llib

gcc -std=c99 -c b.c -o b.o -llib

gcc -std=c99 -c a.c -o a.o -llib

但是当我尝试使用

组合它们时

gcc -o out.o a.o b.o c.o -llib

我收到很多错误,例如relocation 18 has invalid symbol index 13和最后undefined reference to 'main'

我如何创造我需要的东西? `

1 个答案:

答案 0 :(得分:2)

我认为您想要从.o文件中创建一个库。

ar crf yourlib.a a.o b.o c.o

然后,其他人可以通过执行编译程序,例如:

gcc -o main main.c yourlib.a