【发布时间】:2014-08-04 22:01:55
【问题描述】:
有没有一种方法可以确保在链接时报告静态库中所有未解析的符号,无论它们是否在主程序中使用?
假设我在 foo.c 中有一个函数 foo()
#include <stdio.h>
void foo() {
puts("foo");
}
我在 foo2.c 中有一个函数 foo2。这调用了 bar(),它没有在任何地方实现。
void foo2() {
bar();
}
我从这些文件创建一个静态库
ar cr tmplib.a foo.o foo2.o
现在在 main.c 中,我调用 foo(),而不是 foo2()。所以这个编译,即使它没有找到 bar() 的实现。
#include "foo.h"
#include "foo2.h"
int main() {
foo();
return 0;
}
编译:
gcc main.o libtmpc.a
如果库中有符号在链接期间未解析,我希望报告错误。我怎样才能做到这一点?
谢谢。
【问题讨论】:
标签: gcc compilation linker