我的文件依賴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
,而其他人會在他的程序中使用它(他將不得不編寫#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'
。
如何創建我所需要的? `
術語你正在尋找的是*靜態庫*。搜索如何在例如Linux,你會得到很多點擊。 –