我的源文件如下所示
//functions.h
#ifdef FUNCTIONS
#define FUNCTIONS
bool isPrime(int num);
#endif
//function.cpp
include "functions.h"
bool isPrime(int num) {...}
//main.cpp
#include "functions.h"
#include <iostream>
int main()
{
std::cout << isPrime(2);
return 0;
}
我用它们编译了它们 g ++ -o main main.cpp functions.cpp
它给了我错误消息“isPrime”未在此范围内声明。
答案 0 :(得分:5)
你的问题很简单我起初并没有看到它。而不是#ifdef FUNCTIONS
您需要#ifndef FUNCTIONS
。请注意n
。
答案 1 :(得分:1)
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
试试这个
答案 2 :(得分:0)
根据您使用的编译器,您还可以使用以下指令:
#pragma once
这样做是告诉编译器,“嘿,#include
我只有一次”,就像标题警卫一样。但是,它可能更有效地防止重新定义链接器错误。