【发布时间】:2023-03-05 12:11:01
【问题描述】:
我编译了一个静态库。我有两个文件。
-
mylib_1.c里面有函数foo1 -
mylib_2.c包含函数foo2。
#include "mylib.h"。
我像这样编译了一个库:
gcc -c mylib_1.c -o mylib_1.o
gcc -c mylib_2.c -o mylib_2.o
ar cr mylib.a mylib_1.o mylib_2.o
然后我尝试用我的库编译mylib_test.c。
#include "mylib.h"
int main(void)
{
foo1("do something cool");
foo2("do something cool");
return 0;
}
如果我像gcc mylib_test.c mylib.a 那样编译,GCC 成功并且一切正常。
如果我像 gcc mylib_test.c -Lmylib.a 那样编译,GCC 会失败:
C:\path\to\mylib_test.c:x: undefined reference to foo1
C:\path\to\mylib_test.c:x: undefined reference to foo2
为什么 GCC 会失败?
如果它是一个ḋ̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇̇ifference,我正在运行最新版本的Windows 7.1上的Mingw。
【问题讨论】:
标签: c gcc static-libraries unix-ar .a