gpt4 book ai didi

c++ - LNK2019 : unresolved external symbol in function

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:18 25 4
gpt4 key购买 nike

我使用的是 VS2008 WinCE7。我在构建过程中遇到链接错误。

文件系统结构为

menu.c - ./menu.c
eboot.h - ./eboot.h
file_1.cpp - ./dir1/file_1.cpp

其中.代表当前目录

菜单.c

#include <eboot.h>

static VOID OALWriteToEMMC(OAL_BLMENU_ITEM *pMenu);

VOID OALWriteToEMMC(OAL_BLMENU_ITEM *pMenu)
{
OALTestEMMC();
}

file_1.cpp

#include <eboot.h>

VOID OALTestEMMC();

VOID OALTestEMMC()
{
//some code
}

eboot.h

 VOID OALTestEMMC();

我遇到了错误

menu.obj : error LNK2019: unresolved external symbol OALTestEMMC referenced in function OALWriteToEMMC

请指导我如何解决。

编辑 1:

菜单.c

#ifdef __cplusplus
extern "C" VOID OALTestEMMC();
#endif

并删除了 eboot.h 中的声明并将其添加到 file_1.cpp 中但是,错误仍然存​​在。

最佳答案

看起来您正在编译 C++ 中的函数定义,但在 C 中使用该函数。如果不在 C++ 中创建函数 extern "C",编译器将破坏 名称,并生成一个与 C 代码中使用的声明不匹配的符号。

如果您想混合使用 C 和 C++,请确保 C++ 中的声明标记为 extern "C",这样编译器就不会混淆名称并使用 C 调用约定。或者,用 C++(或 C)编译所有内容

关于c++ - LNK2019 : unresolved external symbol in function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com