你知道这个错误吗?
gcc-o xtmpmain.exe xtmpmain.o光纤驱动程序。o xtmp_选项。o getopt.o D:\usr\xtensa\XtDevToolsDE\in
暂停\tools\RB-2008.4-win32\XtensaTools\lib\iss\xtmp.lib
xtmpmain.o(.text+0x213):xtmpmain.c:对“uart”安装程序的未定义引用
xtmpmain.o(.text+0x2da):xtmpmain.c:对“uart”cleanup的未定义引用
LCD返回1退出状态
make:**[xtmpmain.exe]错误1

最佳答案

这意味着xtmpmain.c调用了名为uart_setup()uart_cleanup()的函数,但链接器找不到它们。您可能需要包含一个库,或者用Win32 API实现Windows的这些函数。
一些“是否插入问题”是:
函数是否已声明?
功能是否已定义(即已实现)?
就是那些名字?
预处理器是否排除了这些定义?
有一个gcc选项控制前导下划线的存在与否。你不是偶然把它用在一个文件而不是其他文件上,对吧?
验证已声明的调用约定。__cdecl__stdcall是非常不同的动物。为了安全起见,它们通常会生成不匹配的导出符号名,而此错误可能是这种情况的征兆。
如果这是一个移植项目,那么与UART相关的函数的原始实现很可能是以依赖于平台的方式编写的。在这种情况下,它们通常会受到依赖于编译时平台的某种形式的#ifdef的保护。
要解决这个问题,您需要在这个平台上实现它们,采用与它们在应用程序其余部分中的使用一致的样式,并采用类似的保护措施。

关于c - 帮助来自gcc的错误消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/919872/

10-10 21:30