मैं एसडीएल लाइब्रेरी और जीटीके + 3 का उपयोग कर सी में एक सॉफ्टवेयर बना रहा हूं। एक विशिष्ट main.c पर GTK + 3 के साथ मेरा पहला प्रयास और इसकी मेकफ़ाइल अच्छी तरह से काम करता है, लेकिन जब मैं अपनी "असली" मेकफ़ाइल का उपयोग करके कोड के दूसरे भाग में अपनी जीटीके प्रोजेक्ट जोड़ने की कोशिश करता हूं, भले ही मैंने जीटीके के लिए एक ही झंडे जोड़े हों +3, मैं संकलित नहीं कर सकता और gtk/gtk.h file no found
त्रुटि प्राप्त नहीं कर सकता। मैंने इस त्रुटि के बारे में कई धागे का दौरा किया लेकिन मैं अभी भी इसे काम नहीं कर सकता।'gtk/gtk.h' फ़ाइल नहीं मिली pkg-config
यहाँ मेरे पुराने Makefile है, जिससे चीजें काम:
CC=clang
CPPFLAGS= `pkg-config --cflags gtk+-3.0`
CFLAGS= -Wall -Wextra -std=c99 -O2
LDFLAGS=
LDLIBS= `pkg-config --libs gtk+-3.0` `pkg-config gmodule-2.0 --libs`
SRC= main.c
OBJ= ${SRC:.c=.o}
all: main
main: ${OBJ} -lm
clean:
rm -f *~ *.o main
और यहाँ एक मैं इस परियोजना के लिए उपयोग करें:
CC=clang
CPPFLAGS= `pkg-config --cflags sdl gtk+-3.0`
CFLAGS= -Wall -Wextra -Werror -std=c99 -O2 -pedantic
LDFLAGS=
LDLIBS= `pkg-config --libs sdl` `pkg-config --libs gtk+-3.0` `pkg-config gmodule-2.0 --libs` -lgtk -lgdk -lglib -lX11 -lXext -lSDL -lSDL_image -lm
SRCDIR = src
OBJDIR = obj
BINDIR = bin
TARGET = main
SOURCES := $(wildcard $(SRCDIR)/*.c)
INCLUDES := $(wildcard $(SRCDIR)/*.h)
DEPENDS := $(wildcard $(OBJDIR)/*.d)
OBJECTS := $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
rm = rm -f
all: makedirs $(BINDIR)/$(TARGET)
$(BINDIR)/$(TARGET): $(OBJECTS)
@$(CC) $(OBJECTS) $(LDLIBS) -o [email protected]
@echo "Linking complete!"
$(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c
@$(CC) $(CFLAGS) -c $< -o [email protected]
@echo "[OK] Compiled "$<""
makedirs:
@mkdir -p $(OBJDIR)
@mkdir -p $(BINDIR)
@echo "[OK] Created directories : $(BINDIR) $(OBJDIR)"
[....] etc
और त्रुटि: के लिए
src/main.c:2:14: fatal error: 'gtk/gtk.h' file not found
#include <gtk/gtk.h>
टैंक ध्यान :)
[संपादित करें]
~
▶ pkg-config --libs gtk+-3.0
-lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
~
▶ pkg-config --cflags sdl gtk+-3.0
-D_GNU_SOURCE=1 -D_REENTRANT -pthread -I/usr/include/SDL -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
और main.c के शीर्षक:
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
#include "neural.h"
क्षमा करें, प्रश्न के लिए लेकिन: क्या आपके पास हेडर फ़ाइल है? यह gtk डेवेल पैकेज में होना चाहिए ... 'pkg-config' का आउटपुट क्या है? – MirkoBanchi
मैंने अपना प्रश्न संपादित किया, धन्यवाद;) –
मेरे पास डेबियन है, और हरिंग स्थापित है, जब मैं पहली मेकफ़ाइल का उपयोग करता हूं तो मैं संकलित और परीक्षण सॉफ्टवेयर चला सकता हूं जिसमें gtk/gtk.h –