【发布时间】:2017-12-01 11:24:03
【问题描述】:
这个静态 C 库 (libabc.a) 链接到 C++ 程序。
在我的 qmake 专业文件中,我使用了 LIBS += pathToLib/libabc.a
创建静态库时我没有任何问题。
使用 qmake 和 gmake 编译和运行 cpp 应用程序时,会创建其他 cpp 文件的目标文件,但出现以下错误:
../abc/libabc.a(mdl.o): In function 'SetExt':
abc/src/mdl.c:2186: undefined reference to 'func1'
在 mdl.c 中,声明和定义都在那里。
静态 void func1(int *, char *, char *);
static void func1(int *m, char *p, char *s)
{
.....
}
这个函数的函数调用在C文件mdl.c中。创建静态库(使用 gcc 和 ar)时我犯了错误吗?或者,我错过了什么?
【问题讨论】:
-
@Incomputable 没有看到 extern 并不能两者兼而有之。这意味着链接器稍后会感到困惑。我不是你应该告诉的那个人
-
@UKMonkey,感谢您提供的信息。有什么资源可以阅读吗?
-
@Incomputable stackoverflow.com/questions/1041866/…