无法识别的调试选项:1 [默认启用]

时间:2015-06-01 23:10:48

标签: c gcc compiler-errors makefile cross-platform

我正在用C编写一个用于Windows和Linux的跨平台gtk应用程序。今天我在标题中遇到了奇怪的编译器错误(我以前从未见过)。

当我在Windows中构建程序时会发生这种情况,而在Linux中则不行。当我通过命令行在Windows中构建它时,此消息显示为警告并且程序成功编译。但是,当我在代码块中构建它时,此消息显示为错误,并且不会编译。

以下是我的makefile中的内容:

ifeq ($(OS),Windows_NT)
    CC = mingw32-gcc
    BIN = "bin\"
    DIRCHK = if exist bin rd /s /q bin
    CPGLADE = copy main_win.glade bin\Release
    RM = rmdir /S /Q bin
    SQLITE = -dll sqlite3.dll
    DLL = copy /Y sqlite3.dll bin\Debug && copy /Y sqlite3.dll bin\Release
else
    CC = gcc
    BIN = -vp bin/
    RM = rm -rf bin
    SQLITE = -l sqlite3 -ldl -lpthread
    DLL = rm -f sqlite3.dll
endif

SHELL = bash

GTK := $(shell pkg-config --cflags --libs gtk+-3.0)

CFLAGS := -g -Wall -static-libgcc -lm $(GTK) $(SQLITE)

TARGET = deans2

all:
    $(DIRCHK)
    mkdir $(BIN)Debug
    mkdir $(BIN)Release
    $(CPGLADE)
    $(CC) main.c $(CFLAGS) -o bin/Release/$(TARGET)
    $(DLL)

Debug:
    $(DIRCHK)
    mkdir $(BIN)Debug
    $(CPGLADE)
    $(CC) main.c $(CFLAGS) -o bin/Debug/$(TARGET)
    $(DLL)

Release:
    $(DIRCHK)
    mkdir $(BIN)Release
    $(CPGLADE)
    $(CC) main.c $(CFLAGS) -o bin/Release/$(TARGET)
    $(DLL)

clean:
    $(RM)

1 个答案:

答案 0 :(得分:1)

您确定错误是unrecognized debugging option: 1吗? (排名第一。)

可能是unrecognized debugging option: l吗? (字母椭圆。)

我希望在Windows上构建时-dll中设置SQLITE标志的后一个错误,因为它不是我所知道的gcc的有效标志。< / p>

你想在那里做什么?