c++ - 在 C++ 中一起编译源文件和头文件时出错

标签 c++ header compiler-errors header-files

这不是我正在处理的实际代码,而是我为了解我做错了什么而编写的示例代码。所以我有三个文件 main.cppfavourite.cppfavourite.h 。我正在尝试编译 main.cpp 但出现了一些奇怪的错误。

//main.cpp 文件

#include <iostream>
#include "favourite.h"

using namespace std;

int main()
{
    favNum(12);

}

//favourite.cpp 文件

#include "favourite.h"
#include <iostream>

using namespace std;

void favNum(int num)
{
    cout << "My Favourate number is " << num << endl;
}

//favourite.h文件

#ifndef FAVOURITE_H
#define FAVOURITE_H

void favNum(int num);

#endif

所有文件都在同一个文件夹中,我通常像 g++ main.cpp 一样编译它,我不确定是否需要不同地编译它,因为我正在使用自定义头文件。

最佳答案

如果你说 g++ main.cpp 并且这是你的整个命令行,错误是链接器错误,它找不到 favNum,对吗?在这种情况下,请尝试:

g++ main.cpp favourite.cpp

或者拆分编译和链接:

g++ -c main.cpp -o main.o
g++ -c favourite.cpp -o favourite.o
g++ main.o favourite.o

-c 的意思是:只编译,没有链接,-ofilename 是必需的,因为你想要将输出写入两个不同的目标文件以将它们与最后一个命令链接。

您还可以添加额外的标志,最重要的是:

-Wall -Wextra -O3

关于c++ - 在 C++ 中一起编译源文件和头文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18809639/

相关文章:

java - “Eclipse Java 开发工具”安装停止在 48%

C++ 链接错误。我究竟做错了什么?

html - 如何使垂直列表水平移动?

c++ - 类的锯齿状数组

c++ - 从 std::map 值获取键的有效方法

PHP打开另一个带有POST数据的网页

Python:如何使用 main() 中定义的变量,和/或使用包含两个类的列表而不会出错?

c - 对 xxx include 的 undefined reference 不起作用

android - 为什么 Android 支持库不能在我的项目中运行?

c++ - 可变参数模板的英特尔编译器错误评论?