0
我目前需要爲Windows編譯GTK +應用程序。我生成文件看起來是這樣的:MinGW gtk undefined reference
CC=g++
CFLAGS=-c -m32 -O0 -Wall -Wextra -Werror `pkg-config.exe --cflags --libs gtk+-2.0`
LDFLAGS=-m32 `pkg-config.exe --cflags --libs gtk+-2.0`
SOURCES=$(wildcard src/*.cpp)
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=screenplay
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o [email protected]
.cpp.o:
$(CC) $(CFLAGS) $< -o [email protected]
凡PKG-的Config.exe應該給我正確的-I和-L參數(例如路徑,其中包括文件和庫文件的位置)。並不奇怪,它實際上給了他們 - 輸出:
-mms-bitfields -IC:/MinGW/include/gtk-2.0 -IC:/MinGW/lib/gtk-2.0/include -IC:/MinGW/include/atk-1.0 -IC:/MinGW/include/cairo -IC:/MinGW/include/gdk-pixbuf-2.0 -IC:/MinGW/include/pango-1.0 -IC:/MinGW/include/glib-2.0 -IC:/MinGW/lib/glib-2.0/include -IC:/MinGW/include -IC:/MinGW/include/freetype2 -IC:/MinGW/include/libpng14 -LC:/MinGW/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
我可以證實,庫存在於位置(C:/ MinGW的/ lib目錄/),但我收到未定義引用錯誤。有任何想法嗎?
你自己寫了一個'Makefile'是否有很好的理由? CMake是不是照片? – thokra
粘貼生成的編譯命令行和實際發生的錯誤可能會有助於解決問題。 –
經典的'make'調用 - 編譯成功,鏈接就是問題。基本上我所說的是: g ++ -m32'pkg-config.exe --cflags --libs gtk + -2.0' ALL_OBJECTS -o EXECUTABLE_NAMEz 我收到未定義的參考gtk_main(和其他幾個),就像我甚至不會鏈接鏈接步驟中的庫。 – ZarakiKenpachi