2014-07-03 42 views
-3

昨天我寫了一個簡單的程序。問題是,g ++不會編譯它 -#include issue,''foo()'沒有在此範圍內聲明「

main.cpp: In function ‘void display()’: 
main.cpp:32:21: error: ‘loadObj’ was not declared in this scope 
    loadObj("model.obj"); 

我不明白爲什麼 - 一切都已包括在內。我試圖用這個命令

g++ -Wall -o main objLoader.cpp main.cpp -lGL -lglut -lGLU 

有一個鏈接到源構建它:CLICK

任何想法?

+2

鏈接的代碼中沒有太多的C++。 –

+0

@chris是對的!它具有完全相同的問題,如下所示:'#ifdef __OBJLOADER_H_INCLUDED__' –

+0

順便說一下,[不要使用前導雙重下劃線](http://stackoverflow.com/a/228797/440558)名稱。 –

回答

2

您在ObjLoader.h中包含的警衛是錯誤的。

#ifdef __OBJLOADER_H_INCLUDED__ 

應該

#ifndef __OBJLOADER_H_INCLUDED__ 

注意ifn。就目前而言,標題的內容總是被所有源文件忽略。

+0

哦,上帝,再一個字母毀了一整天:) 謝謝! – Gogetek

+0

長住#pragma一次。 – Quentin

1

嘗試爲const char *

+0

不會幫助這個錯誤,但這是個好主意。 – chris

1

更改您的安全警衛在objLoader.h來聲明函數:

#ifndef __OBJLOADER_H_INCLUDED__ 

#ifdef是 「如果定義」,這顯然不是。