我在Windows 8.1计算机上使用MinGW,我正在尝试引用静态库。尽量我可能会得到一个未定义的引用错误。
这通常只是通常正确传递-L
和-l
标志的情况,但这就是我所做的......
我有以下目录结构:
myapp.c
mylib
mylib.c
mylib.h
#include <stdio.h>
void do_something_amazing(void) {
printf("Woah\n");
}
void do_something_amazing(void);
#include "mylib/mylib.h"
int main() {
do_something_amazing();
return (0);
}
我运行以下命令首先创建一个libmylib
静态库,然后构建引用它的myapp
:
gcc -c -o mylib/mylib.o mylib/mylib.c
ar rcs mylib/libmylib.a mylib/mylib.o
gcc -Lmylib -lmylib myapp.c
最后一次完成此错误:
cchqpYVl.o:myapp.c:(.text+0xc): undefined reference to `do_something_amazing'
collect2.exe: error: ld returned 1 exit status
这看起来很基本,所以我确信我很傻,而且我错过了一步 - 不知道我做错了什么?