[英]How to link cpp and h files together?
解决了
// Solution:
// foo.c includes foo.h; bar.c includes bar.h
g++ -Wall -Wextra -Werror -pedantic -o foobar foo.cpp bar.cpp
我有两个 cpp 文件和两个 h 文件。 我将第一个 cpp 链接到同名的 h 文件,该文件链接到链接到第二个 h 文件的第二个 cpp 文件。 这是我应该将文件链接在一起的方式吗?
我的程序不工作。 也有错误,但我需要确定这是否是错误的一部分。 这是定义/链接 cpp 和 h 文件的方式吗?
// file: foo.cpp
#include "foo.h"
// file: foo.h
#include "bar.cpp"
#include <string>
#include <sstream>
#include <iostream>
using std::cin;
using std::cout;
using std::cerr;
using std::stringstream;
using std::string;
using std::endl;
// file: bar.cpp
#include "bar.h"
// file: bar.h
// ...
完全错误。 头文件将包含在 cpp 文件中。 Cpp 文件永远不会包含在任何东西中。 通常,头文件包含声明,而 cpp 文件包含定义。
如果您的程序包含两个 cpp 文件,则不要将其中一个包含在另一个中。 相反,您将它们一起编译成一个可执行文件。
我猜您对声明和定义的工作方式或包括的作用有一些误解。 建议你刷一下课本,或者看看github上的一些小C++程序。
不。你不应该#include
cpp 文件。 此外,您错误地使用了术语“链接”。
“链接”与#include
无关。 这是链接器在编译/汇编完成后执行的任务。 链接是在目标文件和库上执行的,而不是头文件或 cpp 文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.