2016-10-01 76 views
0

我正在運行OS X 10.10.5。當我嘗試(從終端)加載某些紋理一個OpenGL代碼跑,我得到這個錯誤:「無法打開文件chair.bmp」 錯誤得到執行這條線提供相對路徑時,加載紋理將不起作用

chairTexture = LoadTexBMP("chair.bmp"); 

提供全方位後發出路徑解決了這個問題,但我需要使它與相對路徑一起工作。

示例代碼帶有一個生成文件:

# Example 9 
    EXE=ex9 

    # Main target 
    all: $(EXE) 

    # MinGW 
    ifeq "$(OS)" "Windows_NT" 
    CFLG=-O3 -Wall 
    LIBS=-lglut32cu -lglu32 -lopengl32 
    CLEAN=del *.exe *.o *.a 
    else 
    # OSX 
    ifeq "$(shell uname)" "Darwin" 
    CFLG=-O3 -Wall -Wno-deprecated-declarations 
    LIBS=-framework GLUT -framework OpenGL 
    # Linux/Unix/Solaris 
    else 
    CFLG=-O3 -Wall 
    LIBS=-lglut -lGLU -lGL -lm 
    endif 
    # OSX/Linux/Unix/Solaris 
    CLEAN=rm -f $(EXE) *.o *.a 
    endif 

    # Compile rules 
    .c.o: 
     gcc -c $(CFLG) $< 
    .cpp.o: 
     g++ -c $(CFLG) $< 

    # Link 
    ex9:ex9.o 
     gcc -O3 -o [email protected] $^ $(LIBS) 

    # Clean 
    clean: 
     $(CLEAN) 

運行在終端收率/Users/nina/CG/ex9

所有紋理圖像是在文件夾EX9與ex9.c和生成文件沿着pwd。 我試圖找到一個解決方案,但我找到的所有解決方案都是關於在Xcode中更改我不使用的工作目錄。

+0

嘗試:chairTexture = LoadTexBMP(「./ chair.bmp」); – Murillio4

+0

@ Murillio4已經嘗試過,沒有工作。 – nina

+0

你有沒有試過不使用-O3? -O2和-O3對我的程序來說確實很奇怪 – Murillio4

回答

0

我終於明白我做錯了什麼。我在終端中使用的是open ex9,其行爲就像我點擊可執行文件一樣,然後依次將工作目錄更改爲主目錄。因此,爲了不改變工作目錄,我應該使用./ex9