我正在用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)
答案 0 :(得分:1)
您确定错误是unrecognized debugging option: 1
吗? (排名第一。)
可能是unrecognized debugging option: l
吗? (字母椭圆。)
我希望在Windows上构建时-dll
中设置SQLITE
标志的后一个错误,因为它不是我所知道的gcc
的有效标志。< / p>
你想在那里做什么?