如何使用头文件
How to use header files?
我想学习使用头文件。我得到了一个错误。下面是我的代码:
printmyname.h:
void printMyName();
printmyname.cpp:
#include "printmyname.h"
void printMyName() {
cout << "omer";
}
try.cpp(主文件):
#include <iostream>
#include "printmyname.h"
using namespace std;
int main() {
printMyName();
return 0;
}
错误如下:
undefined reference to `printMyName()`
有什么问题吗?
在这种情况下,未定义引用与头文件无关。这意味着链接器在printmyname.cpp
中找不到printMyName
的实现。如果您正在使用g++
,您应该尝试:
g++ try.cpp printmyname.cpp -o yourBinaryName
如果你使用的是makefile,你应该正确地为try.cpp添加依赖项(printmyname.cpp)。
编辑:正如@zmo在他的评论中建议的:
也可以通过两次编译(更适合使用Makefiles)来完成:
g++ -c printmyname.cpp
g++ try.cpp printmyname.o -o yourBinaryName
如果你使用的是Windows,你也需要将printmyname.cpp添加到你的项目中。考虑在标题
中添加include保护#ifndef PRINTMYNAME_INCLUDED
#define PRINTMYNAME_INCLUDED
void printMyName();
#endif
您还需要将#include <iostream>
和using namespace std;
从try.cpp文件移动到printmyname.cpp文件。
您只需要在printMyName.h内的printMyName.cpp中添加代码/定义。
void printMyName();
{
cout << "omer";
}
相关文章:
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何在其他文件中使用函数
- 在实现文件中使用头文件的通用 lambda
- 将 getline() 与文件一起使用
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 定义C++新的环境变量并在 bat 文件中使用它
- 如何在另一个 CPP 文件中使用一个 cpp 文件中的函数?
- 在 embarcadero / RAD 工作室中的 .dfm 文件中使用常量
- 声明要在 qml 和 cpp 文件中使用的全局字符串
- 如何在 linux 可执行文件中使用静态库
- 在C++的头文件中使用常量并在程序中询问其地址的任何潜在危险
- 使用 libssh 从 SFTP 服务器下载文件并使用 C++ 将其写入 ofstream?
- CocoaPod - 在头文件中使用 C++ 时出现 Podspec 检查错误
- 链接器输入文件未使用,因为链接未完成,我无法获得.o
- 使用个人C++库编译代码时,与头文件一起使用时会中断
- 如何为文件路径使用变量?
- 没有头文件如何使用c ++调用其他模块中的函数?
- 在带有类型保护的模板文件中使用前向声明
- 无法使包含.hpp文件与其中的2个文件一起使用
- 文件删除(使用取消链接)与释放所有磁盘空间之间的延迟