gpt4 book ai didi

c++ - Visual Studio 2010下LNK2019错误

转载 作者:搜寻专家 更新时间:2023-10-31 01:54:56 26 4
gpt4 key购买 nike

我已经使用以下文件在 Visual Studio 2010 下创建了一个示例 C++ 项目。

啊啊

#ifndef A_H
#define A_H

#include <iostream>

void foo();

#endif

A.cpp

#include "A.h"

void foo()
{
int a = 1;
}

主要.cpp

#include "A.h"

int main(int argc, char* argv[])
{
foo();

return 0;
}

构建后我得到以下输出:

1>------ 构建开始:项目:opengl_test,配置:调试 Win32 ------

1> main.cpp

1>啊啊

1>A.cpp

1> 生成代码...

1>Debug\A.obj:警告 LNK4042:多次指定对象;忽略额外内容

1>main.obj:错误 LNK2019:未解析的外部符号“void __cdecl foo(void)”(?foo@@YAXXZ) 在函数 _main 中引用

1>C:\Users\alp\Projects\Test Samples\opengl_test\Debug\opengl_test.exe : fatal error LNK1120: 1 unresolved externals

========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

这个错误的原因是什么?

最佳答案

我认为发生的事情是 A.h 在项目的 Source 组而不是 Header 组中,因此它被编译为 .cpp。由于 A.cppA.h 都会生成目标文件 A.obj,因此最后编译的文件是唯一链接的文件。我相信最后编译的是 A.h,它没有 foo() 的实现,因此链接器找不到它。

关于c++ - Visual Studio 2010下LNK2019错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997000/

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