c++ - c ++包含标头失败
问题描述
最近我开始学习c++。当我尝试编写头文件时,出现包含错误。这是我的代码:首先是头文件(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)", 引用自: main-90c620.o 中的 _main ld: 未找到架构 x86_64 的符号 clang: 错误: 链接器命令失败,退出代码为 1(使用 -v 查看调用)
当我使用时,我已经搜索了一些解决方案
#include "header.cpp"
它工作正常,但我看到不推荐使用#include some_file.cpp 的人
顺便说一句,我使用 Visual Studio 代码并使用代码运行器。谢谢!
解决方案
正常用法是compile header.cpp
,而不是将其包含在另一个.cpp
源中。然后链接器会将这些部分放在一起。
推荐阅读
- wso2esb - 如何在 WSO2IS 中设置访问令牌而不过期
- python - cs50ai tic tac toe minimax TypeError: '>' 在 'NoneType' 和 'float' 的实例之间不支持
- excel - Excel 中的缺勤报告
- r - 使用 ggplot2 打印带有 '\n' 的文本
- android - 如何正确理解 RecyclerView
- assembly - 汉明距离函数
- android - 如何在android中保存相机点击的图片?
- javascript - 无法在flutter webview中使用带有脚本的html
- html - 使父高度适合内容高度(CSS)
- firebase - 谷歌登录后如何在另一个页面上导航