当-L和-l看起来正确时,为什么我会得到未定义的引用

时间:2016-09-27 05:53:03

标签: c mingw static-linking

我在Windows 8.1计算机上使用MinGW,我正在尝试引用静态库。尽量我可能会得到一个未定义的引用错误。

这通常只是通常正确传递-L-l标志的情况,但这就是我所做的......

我有以下目录结构:

myapp.c
mylib
    mylib.c
    mylib.h

MYLIB / mylib.c

#include <stdio.h>

void do_something_amazing(void) {
    printf("Woah\n");
}

MYLIB / mylib.h

void do_something_amazing(void);

myapp.c

#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

这看起来很基本,所以我确信我很傻,而且我错过了一步 - 不知道我做错了什么?

0 个答案:

没有答案