解决
// 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
// ...
答案 0 :(得分:5)
完全错了。头文件将包含在cpp文件中。任何东西都不包含Cpp文件。通常,头文件包含声明,而cpp文件包含定义。
如果您的程序包含2个cpp文件,则不会在另一个文件中包含一个。相反,您将它们一起编译为单个可执行文件。
我猜你对声明和定义的工作方式或包含的内容有一些误解。我建议你刷一本教科书,或者看看github上的一些小型C ++程序。
答案 1 :(得分:1)
没有。你不应该&
cpp文件。此外,您还在使用“&#39; link&#39;不正确。
&#39;链接&#39;与#include
无关。它是在执行编译/汇编后由链接器执行的任务。链接是在目标文件和库上执行的,而不是头文件或cpp文件。