我的文件依赖项a.c
,a.h
,b.c
,b.h
,c.c
,c.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'
。
我如何创造我需要的东西? `
答案 0 :(得分:2)
我认为您想要从.o文件中创建一个库。
ar crf yourlib.a a.o b.o c.o
然后,其他人可以通过执行编译程序,例如:
gcc -o main main.c yourlib.a