gpt4 book ai didi

c++ - 从 C 文件调用 C++ 函数会出现 "undefined reference"编译器错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:25:50 24 4
gpt4 key购买 nike

<分区>

我有以下文件 - main.c、RULE_MINE.h 和 RULE_MINE.cpp

ma​​in.c

#include "RULE_MINE.h"
int main()
{
checker();
}

RULE_MINE.h

#ifndef HEADER_FILE
#define HEADER_FILE

#ifdef __cplusplus

extern "C"
{

#endif

//declare functions here
void checker();

#ifdef __cplusplus

}

#endif

#endif

RULE_MINE.cpp

#include <bits/stdc++.h>
#include "RULE_MINE.h"

using namespace std;

void checker()
{
cout<<"whaaat?"<<endl;
}

我正在编译以下方式

$ g++ RULE_MINE.h
$ g++ -c RULE_MINE.cpp
$ g++ main.c

为此,我得到一个编译器错误

main.c:(.text+0x1947): undefined reference to 'checker'
collect2: error: ld returned 1 exit

我找不到错误是什么。但是假设在 main.c 文件中,如果我包含 #include "RULE_MINE.cpp" ,那么它会正常运行并提供输出。你能解释一下为什么我会收到这个错误吗?

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