我想以层次方式链接三个文件。
所以,我先将三个文件分别编译成目标文件
但是,当我尝试像
// a.c
int fun1(){...}
int fun2(){...}
// b.c
extern int parameter;
int fun3(){...//using parameter here}
// main.c
int parameter = 1;
int main(){...// use fun1 fun2 fun3}
所以,我先将三个文件分别编译成目标文件
a.o
,b.o
和main.o
。然后我想将a.o
和b.o
合并到另一个目标文件tools.o
中。最终使用tools.o
和main.o
生成可执行文件。但是,当我尝试像
ld -o tools.o a.o b.o
这样合并a.o
和b.o
时,链接器会提示undefined reference to 'parameter'
。我该如何将这些目标文件链接到一个中间目标文件中?