C++ 头文件/实现文件不工作

问题描述 投票:0回答:1

我正在尝试在 C++ 中使用标头。我有

calculation.h
calculation.cpp
文件。我使用必要的参数调用了
add
sub
函数,这些参数在
calculation.h
文件中声明并在
calculation.cpp
文件中实现。我已将
calculation.h
文件包含在
calculation.cpp
文件中。但是每当我尝试运行我的
main.cpp
文件时,它就会抛出这个错误!

[C:\Users\MAHBIN~1\AppData\Local\Temp\ccPy83Oj.o:main.cpp:(.text+0x32): undefined reference to `add(int, int)'

C:\\Users\\MAHBIN\~1\\AppData\\Local\\Temp\\ccPy83Oj.o:main.cpp:(.text+0x65): undefined reference to `sub(int, int)'

collect2.exe: error: ld returned 1 exit status]

(https://i.stack.imgur.com/eU9Gp.png)

main.cpp
文件:

#include<iostream>
#include"calculation.h"
using namespace std;

int main(){
    int x=5, y=20;
    cout<<add(x,y)<<endl;
    cout<<sub(x,y)<<endl;
    return 0;
}

calculation.h
文件:

#pragma once

int add(int, int);
int sub(int, int);

calculation.cpp
文件:

#include<iostream>
#include"calculation.h"

int add(int x, int y){
    return x+y;
}

int sub(int x, int y){
    if(x<y){
        return y-x;
    }
    else return x-y;
}

但是每当我直接将

calculation.cpp
文件包含在
main.cpp
文件或
calculation.h
文件中时,它就可以工作!但是我想通过包含
calculation.cpp
来使用
calculation.h

如果我在终端中明确运行这个命令,它就可以工作!否则,它不会!

g++ -o main.exe main.cpp calculation.cpp

c++ include header-files implementation
1个回答
0
投票

跑步

g++ -o main.exe main.cpp calculation.cpp

正确的方法。

如果您不指定,编译器将不会继续编译其他 .cpp 文件。

如果您计划进行更大的项目,您可能会对使用像

CMake
这样的工具感兴趣。

© www.soinside.com 2019 - 2024. All rights reserved.