我有兩個文件:試圖使用函數在頭/ CPP文件
hello.h和HELLO.CPP
hello.h
#ifndef __HELLO_H__
#define __HELLO_H__
using namespace std;
void PrintMessage();
#endif
HELLO.CPP
#include <iostream>
#include "hello.h"
using namespace std;
void PrintMessage()
{
cout << "I want to be displayed!";
}
現在,我想在新的.cpp文件中使用PrintMessage()
,但我不斷收到錯誤消息。這是我在做什麼:
printingmessage.cpp
#include <iostream>
#include "hello.h"
using namespace std;
int main()
{
PrintMessage();
return 0;
}
我只是做一些公然錯了嗎?我確實把它們都放在同一個文件夾中;我認爲它與Dev-C++(我用來編寫/編譯/運行的東西)有關,但我無法弄清楚。有人有主意嗎?
我創建了一個文件夾,我的桌面上,把所有三個文件裏面,我試圖編譯我的printingmessage.cpp
文件,正是因爲它是。這是我得到的錯誤:
[Linker error] Undefined reference to 'PrintMessage()'
所有帶相鄰下劃線的標識符都是[保留](http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier) 。在使用標頭守衛(或任何其他名稱,但這些是最常見的違規行爲)時請記住這一點。即使將它們更改爲一個下劃線仍然違反了另一個規則(從_開始),因此請務必牢記這一點。另外,''使用名稱空間標準符號''是你在你的頭文件的全局空間中絕對不需要**的東西。它可能會導致包含它的人感到混亂。 –
chris
至於錯誤,它是一個鏈接器錯誤(*未定義引用PrintMessage *)?如果是這樣,你的'hello.cpp'也需要內置到你的可執行文件中。 – chris
我應該說我無法控制.h和.cpp文件。我也只能在我的主文件中執行#include「hello.h」。 –