【问题标题】:OS detection Makefile操作系统检测 Makefile
【发布时间】:2014-06-25 23:30:17
【问题描述】:

这是我的 makefile,直到今天我从未尝试在其中使用操作系统检测。我的看起来像这样:

CC  = gcc
CFLAGS = -Wall -Wextra -O1 -Wuninitialized
OUT = project.exe

ifeq ($(UNAME),Darwin) #Mac OS
    echo "Darwin"
    SRC = sdl_gui.c libSDLextra.c libImageProcessing.c SDLmain.m
    OBJ = sdl_gui.o libSDLextra.o libImageProcessing.o SDLmain.o
    LIBS = -I /Library/Frameworks/SDL.framework/Headers -framework SDL -I /Library/Frameworks/SDL_ttf.framework/Versions/A/Headers -framework SDL_ttf -framework Cocoa
endif

ifeq ($(UNAME),Linux) #Linux based systems
    SRC = sdl_gui.c libSDLextra.c libImageProcessing.c
    OBJ = sdl_gui.o libSDLextra.o libImageProcessing.o
    LIBS = -lSDL -lSDL_ttf
endif

all : $(OUT)

$(OUT) : $(OBJ)
    $(CC) $(CFLAGS) $(OBJ) -o $(OUT)

$(OBJ) : $(SRC)
    $(CC) $(CFLAGS) -c $(SRC)

clean :
    rm -f $(OBJ) $(OUT)

当我执行make 时,我遇到了这个错误:

gcc -Wall -Wextra -O1 -Wuninitialized  -o projet.exe
clang: error: no input files
make: *** [projet.exe] Error 1

我了解错误,但不知道如何解决。

【问题讨论】:

    标签: linux macos compilation makefile


    【解决方案1】:

    您似乎在文件顶部(附近)缺少此内容:

    UNAME := $(shell uname)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-05
      • 2014-04-14
      • 2014-03-11
      • 2019-10-04
      • 2017-04-10
      • 2014-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多