我已經通過自制安裝了SDL,並將它與我的測試程序完美的作品,如果我直接在終端中輸入以下命令:SDL通過自制最大OSX,Makefile文件不太工作
g++ -O3 -g -Wall -Wextra -std=c++1y hello.cpp hello_main.cpp `sdl2-config --cflags --libs` -o hello
但不幸的是我的嘗試編寫一個makefile(我肯定會需要一個)已經取得了不成功/無法解釋的結果。 我是這樣的,但我的配置是不同的/我沒有指定可可(我不需要),所以我期望我遇到的問題可能部分是由於我的不同要求: Compiling SDL on OS X with makefile 例如:
CC=g++
CFLAGS=-c -Wall
SDLFLAGS=`sdl-config --cflags --libs` -framework Cocoa
SOURCES=main.cpp Game.cpp IO.cpp Board.cpp Pieces.cpp Piece.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=tetris
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(OBJECTS) $(SDLFLAGS) -o [email protected]
.cpp.o:
$(CC) $(CFLAGS) $< -o [email protected]
clean:
rm -rf *.o $(EXECUTABLE)
我的makefile至今:
CXX = g++
CXXFLAGS = -c -O3 -g -Wall -Wextra -std=c++1y
SDLFLAGS = `sdl2-config --cflags --libs`
SOURCES = hello_main.cpp hello.cpp
OBJECTS = $(SOURCES:.cpp=.o)
EXECNAME = hello
all: $(SOURCES) $(EXECNAME)
$(EXECUTABLE): $(OBJECTS)
$(CXX) $ (OBJECTS) $(SDLFLAGS) -o [email protected]
.cpp.o:
$(CXX) $(CXXFLAGS) $< -o [email protected]
clean :
-rm -f *.o *.core $(EXECNAME)
在我.HPP的頭文件,如果我#include <SDL.h>
和運行的一行命令,一切順利。如果我嘗試上面的makefile,找不到,但如果我然後將該指令更改爲#include <SDL2/SDL.h>
,則會發現該庫。然而,控制檯輸出如下:
g++ -c -O3 -g -Wall -Wextra -std=c++1y hello.cpp -o hello
這是奇數。
運行./hello會產生「權限被拒絕」錯誤,從而確認鏈接和編譯不成功。 每個人的系統都有一點不同,到目前爲止我發現的問題在這種情況下並沒有幫助。我想如果我可以從IDE中導入固定的makefile或從終端/編譯生成,那麼,我將如何開始在IDE中使用它?我很好。)
我需要做什麼makefile的變化? 謝謝。
編輯:
變化1:
CXX = g++
CXXFLAGS = -O3 -g -Wall -Wextra -std=c++1y -c
SDLCFLAGS = `sdl2-config --cflags`
SDLLIBFLAGS = `sdl2-config --libs`
SOURCES = hello_main.cpp hello.cpp
OBJECTS = $(SOURCES:.cpp=.o)
EXECNAME = hello
all: $(SOURCES) $(EXECNAME)
$(EXECUTABLE): $(OBJECTS)
$(CXX) $ (OBJECTS) $(SDLLIBFLAGS) -o [email protected]
.cpp.o:
$(CXX) $(CXXFLAGS) $(SDLCFLAGS) $< -o [email protected]
clean :
-rm -f *.o *.core $(EXECNAME)
與'\'pkg配置--cflags SDL2 --libs試試吧\''代替。 – Manny102030