我有一个带有函数原型的头文件...
void setupEntry();
该函数是从链接到库中的main()中调用的,但是在项目中没有实际定义该函数。
当我链接项目时,它不会生成“未定义函数”错误。
当我查看.lss输出时,该函数在那里并且为空,最后只返回一个...
void setupEntry() {
a6e: 08 95 ret
为什么/如何通过编译器或链接器一无所有地创建此空函数,而不是报告错误?
答案 0 :(得分:0)
答案:退出并退出Atmel Studio。
因此,在花了一个小时试图解决这个问题后,我碰巧退出了Atmel Studio,然后重新加载了它……问题消失了。完全相同的代码和项目文件,但在重新加载后首次构建,并出现了预期的错误...
libblinkos.a(blinkos.o): In function `run()':
blinkos.cpp(243,1): error: undefined reference to `setupEntry()'
Atmel Studio中肯定存在一些错误或缓存问题。我想这课是退出并重新加载的频率更高。 :/