stm32 cube ide 编译提示 undefined reference to
需求 编译的时候,提示 undefined reference to 解决 这种问题经常会碰到,一般就是相关源文件没有在编译列表里面,结果经过仔细查找,都添加进去了。后来经过仔细查找,发现原来是 c++ 和 c 混合编译的问题,在 c++ 中文件里面调用的函数,其所在的头文件没有使用 extern "C" 包含,导致的。想要修改也很简单,不需要改动头文件,只需要在 c++ 文件中这样: #include "gx_api.h" extern "C" { #include "gx_display.h" } 而且其实在 map 文件中是有相关线索的,下面分别是没有用 extern 包含,和用了 extern 包含的 map 文件中的函数信息。可以明显看到有 extern 包含的,有相关地址。 .text._gx_display_driver_565rgb_setup 0x0000000000000000 0x260 ./guix/common/src/gx_display_driver_565rgb_setup.o .text._gx_display_driver_565rgb_setup 0x000000000801e6e8 0x260 ./guix/common/src/gx_display_driver_565rgb_setup.o 0x000000000801e6e8 _gx_display_driver_565rgb_setup 参考 gcc “undefined reference to” 问题解决方法