0

论坛上有很多人问过这个错误,但似乎没有一个人和我遇到过这个错误。

我正在将一个 g++ 项目转移到 Microsoft Visual Studio C++ 2010 Express。我首先在“新建项目”窗口中选择“空项目”选项。然后我将“Header Files”文件夹中的所有 *.h 文件和所有 *.cpp 文件复制到“Source Files”文件夹中。在尝试构建(配置:调试 Win32)解决方案时,我收到以下错误:

abc.obj : error LNK2019: unresolved external symbol "void __cdecl fn(struct data *,int)" (?fn@@YAXPAUdata@@H@Z) referenced in function "int __cdecl abc(int,float,float,int,int,int)" (?abc@@YAHHMMHHH@Z)

abc.cpp 试图调用 fn.cpp 中定义的 fn()。它由 abc.cpp 提供 #include "fn.h"

fn.h 有该行 extern void fn(data*,int);,fn.cpp 有定义(位于 Source Files 文件夹中)

abc.cpp 通过包含所需的 .h 文件并在它们自己的相应 .cpp 文件中定义这些函数来使用许多其他可用的函数。然而,这些功能都不会导致这样的错误。

我在阅读 stackoverflow 后尝试的几个选项是:

由于我没有在此处添加 .lib 文件,因此我无法在项目属性中使用“添加外部依赖项”配置。

我尝试将项目重新配置为“Win32 控制台应用程序”,但我仍然得到完全相同的错误。

我尝试将“目标机器”从 x86 更改为 x64 类型,但这会产生其他错误,这些错误也没有得到解决。

在这种情况下,有没有人有解决此错误的建议。

在此先感谢您的帮助!

4

0 回答 0