我正在尝试安装一个 C 软件,然后制作一个使用它的测试程序。
该软件由三个文件组成:
- x-as-func.c
- x-as-func.h
- yh(这只有定义语句)
- 可执行文件 x
在生成文件中,我有一个“安装”命令:
.PHONY: install
install: all
cp ./include/x-as-func.h /usr/local/include/x.h
cp ./include/y.h /usr/local/include/y.h
cp ./x /usr/local/bin/x
当我执行“sudo make install”时,一切运行正常,文件按预期复制。
但是,当我编译看起来像这样的测试程序时:
测试.c
#include "hubo-read-trajectory-as-func.h"
int main(){
char* s ="left_elbow.txt";
someFunctionDefinedInX(s, 0, false, false);
}
我得到错误:
gcc -o test test.c -include //usr/local/include/x.h
/tmp/cc6ru89m.o: In function `main':
test.c:(.text+0x27): undefined reference to `someFunctionDefinedInX'
collect2: ld returned 1 exit status
或者如果我这样做 -ld 那么我得到
gcc -o test random-test.c -ld x.h
gcc: error: x.h: No such file or directory
我相信头文件和可执行文件没有链接?我对吗?我应该如何纠正这个?