[英]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.