2016-10-01 12 views
0

Я запускаю OS X 10.10.5. Когда я пытаюсь запустить (от терминала) в OpenGL кода, который загружает некоторые текстуры, я получаю эту ошибку: «Не удается открыть файл chair.bmp» Ошибки получает выдается после выполнения этой строкиЗагрузка текстуры не будет работать при предоставлении относительного пути

chairTexture = LoadTexBMP("chair.bmp"); 

обеспечивая полного путь решает проблему, но мне нужно заставить ее работать с относительным путем.

Пример кода поставляется с Makefile:

# 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) 

работает pwd в терминале выходов /Users/nina/CG/ex9

Все изображения текстуры находятся в папке EX9 вместе с ex9.c и Makefile. Я попытался найти решение, но все найденные решения говорят об изменении рабочего каталога в Xcode, который я не использую.

+0

try: chairTexture = LoadTexBMP ("./ chair.bmp"); – Murillio4

+0

@ Murillio4 Уже пробовал, что не работал. – nina

+0

Вы пытались не использовать -O3? -O2 и -O3 делает странные вещи для моих программ раз – Murillio4

ответ

0

Я, наконец, понял, что я делаю неправильно. Я использовал open ex9 в терминале, который ведет себя так, как будто я нажимал на исполняемый файл, который по очереди меняет рабочий каталог в домашний каталог. Поэтому, чтобы не менять рабочий каталог, я должен использовать ./ex9

Смежные вопросы