gpt4 book ai didi

c++ - 第一次使用 PCH,出现链接器工具错误

转载 作者:行者123 更新时间:2023-11-30 16:41:00 25 4
gpt4 key购买 nike

我是一个相当新手的程序员,刚刚学习了一点 c 语言,但我总是在 Linux 上使用 gcc 和 Vim 完成它,但决定尝试使用 Visual Studio,我收到了 LNK2005 和 LNK1169 错误,我已经尝试查找错误以及如何修复它们并正确使用 PCH,因为我认为即使我的程序太小而无法使用它,学习它也会很有用。

根据我的理解,我需要#include "stdafx.h"在我的源文件的顶部(称为“helloworld.c”)我还没有触及“stdafx.c” ' 根据创建项目时的默认设置,我创建了一个名为 ' bitwise.h 的头文件' 并且它有一个名为 ' int bw() 的函数'然后我有'stdafx.h '我添加的只是 #include "bitwise.h"在我的标题中bitwise.h我试图包括 #include "stdafx.h" #include "stdafx.c" #include <stdio.h>甚至不包括任何东西。所有这些都破坏了我的程序。我可以编译它的唯一方法是注释掉 //bw();然后我的程序编译得很好。

以下是我认为可能是罪魁祸首的文件:

helloworld.c

#include "stdafx.h"

int main()
{

printf("\tHello World!\n");
getchar();
bw(); //If this line is commented out everything works just Honky-Dory
getchar();
return 0;
}

按位.h

#include "stdafx.h" //I've tried lots of diffrent lines here, nothing works

int bw()
{
int a = 1;
int x;

for (x = 0; x < 7; x++)
{
printf("\nNumber is Shifted By %i Bits: %i", x, a << x);
}
getchar();

return 0;
}

stdafx.c

// stdafx.cpp : source file that includes just the standard includes
// $safeprojectname$.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

// TODO: reference any additional headers you need in STDAFX.H
// and not in this file

stdafx.h

// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

#include "targetver.h"
#include "bitwise.h"
#include <stdio.h>
#include <tchar.h>



// TODO: reference additional headers your program requires here

最佳答案

这与 PCH 无关。您混淆了头文件 (.h) 和实现文件 (.c)。您需要做的是将实现和声明分开。您应该执行以下操作:

  1. bitwise.h 重命名为 bitwise.c,因为这是您的实现文件,而不是 header !

  2. 创建一个新文件bitwise.h并仅在其中放置声明,它应该如下所示:

    #pragma once

    int bw();

之后您的项目应该能够编译。

另请注意,PCH 文件应包含不经常更改的包含内容,这可能不是您的情况,因为您还包含 bitwise.h。您可能希望从 stdafx.h 中删除此包含内容并将其包含到 helloworld.c 中。

顺便说一句,在学习 C 期间,不要考虑通过 #include 包含 .c 文件!如果它修复了您的一些编译错误,那么您的项目设计可能是非常错误的。

关于c++ - 第一次使用 PCH,出现链接器工具错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46439271/

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