我一直在尝试修复我的多定义错误,大多数答案似乎是使用extern,但即使在这样做之后,该错误仍然存在
main.cpp
#include "header.h"
int main(){
ifstream indata;
indata.open(file.c_str());
int x;
while(indata){
indata >> x;
print(x);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
functions.cpp
#include "header.h"
void print(int x){
cout << x << endl;
}
Run Code Online (Sandbox Code Playgroud)
头文件
#ifndef _HEADER_H
#define _HEADER_H
#include <fstream>
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
extern string file="testFile.txt";
void print(int x);
#endif
Run Code Online (Sandbox Code Playgroud)
生成文件
all: main
main.o: main.cpp header.h
g++ -c main.cpp
functions.o: functions.cpp header.h
g++ -c functions.cpp
main: main.o functions.o
g++ main.o functions.o -o main
check: all …Run Code Online (Sandbox Code Playgroud) c++ ×1