我有3个目录,src
,lib
和include
。在include
我有头文件header3.h
。其代码如下:
//header3.h
extern void change(int *a);
在lib
我有change4.c
文件,其中包含:
//change4.c
#include <stdlib.h>
#include "header3.h"
void change(int *a){
int y=100;
*a=y;
}
在src
我有manipulate5.c
文件,其中包含:
//manipulate5.c
#include <stdio.h>
#include "header3.h"
int main(void){
int x=10;
printf("x is %d\n", x );
change(&x);
printf("x is now %d\n", x );
}
我已分别为文件manipulate5.o
和change4.o
创建了对象文件manipulate5.c
和change4.c
。当manipulate5.o
位于src
且change4.o
位于lib
时,如何将这两者联系起来?
我应该进一步澄清;我应该能够在src
目录中运行可执行文件。因此,我不允许在根目录中进行编译。
答案 0 :(得分:0)
看起来您想要使用链接器。我假设你在linux上。 ld是你想要使用的。像
这样的东西ld -o executableName lib/change4.o src/manipulate5.o
这假设您处于项目的顶层。您还必须将标题的两个包含更改为
#include "../include/header3.h"