c++ include header 失败
c++ include header get failed
最近我开始学习c++。当我尝试编写我的 header 文件时,出现包含错误。这是我的代码:
首先是 header 文件(header.h)
#pragma once
void print(int);
然后是它的cpp文件(header.cpp)
#include "header.h"
#include <iostream>
using namespace std;
void print(int x){
cout << x << endl;
}
最后是我的主 cpp 程序(main.cpp)
#include <iostream>
#include "./header.h"
using namespace std;
int main(){
int x = 123;
print(x);
}
这是错误,我不明白它在说什么orz
cd "/Users/yianchen/Desktop/cpp practice/" && g++ main.cpp -o main &&
"/Users/yianchen/Desktop/cpp practice/"main Undefined symbols for
architecture x86_64: "print(int)", referenced from:
_main in main-90c620.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to
see invocation)
我已经搜索了一些解决方案,当我使用
#include "header.cpp"
它工作正常,但我看到不推荐使用#include some_file.cpp
顺便说一句,我使用visual studio代码并使用代码运行器。谢谢!
正常用法是编译 header.cpp
,而不是将其包含在另一个.cpp
源中。然后链接器会将这些片段放在一起。
最简单的解决方案是执行如下操作
g++ header.cpp main.cpp
这将确保 header.cpp
中定义的函数与使用它的代码一起编译。
最近我开始学习c++。当我尝试编写我的 header 文件时,出现包含错误。这是我的代码: 首先是 header 文件(header.h)
#pragma once
void print(int);
然后是它的cpp文件(header.cpp)
#include "header.h"
#include <iostream>
using namespace std;
void print(int x){
cout << x << endl;
}
最后是我的主 cpp 程序(main.cpp)
#include <iostream>
#include "./header.h"
using namespace std;
int main(){
int x = 123;
print(x);
}
这是错误,我不明白它在说什么orz
cd "/Users/yianchen/Desktop/cpp practice/" && g++ main.cpp -o main && "/Users/yianchen/Desktop/cpp practice/"main Undefined symbols for architecture x86_64: "print(int)", referenced from: _main in main-90c620.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已经搜索了一些解决方案,当我使用
#include "header.cpp"
它工作正常,但我看到不推荐使用#include some_file.cpp
顺便说一句,我使用visual studio代码并使用代码运行器。谢谢!
正常用法是编译 header.cpp
,而不是将其包含在另一个.cpp
源中。然后链接器会将这些片段放在一起。
最简单的解决方案是执行如下操作
g++ header.cpp main.cpp
这将确保 header.cpp
中定义的函数与使用它的代码一起编译。