2009-08-22 5 views
8

के भीतर सी/जीटीके संकलित करना मैं एक सरल जीटीके ऐप बनाने के लिए ग्रहण के सी/सी ++ संस्करण के साथ झुका रहा हूं। हालांकि, मैं ग्रहण के भीतर से एक जीटीके नमूना संकलित करने में सक्षम नहीं लग सकता। मैं एक साधारण हैलो वर्ल्ड स्टाइल टेस्ट ऐप संकलित कर सकता हूं, इसलिए मुझे पता है कि उपकरण श्रृंखला स्वयं काम कर रही है। हालांकि, जिस क्षण मैं मिश्रण में जीटीके जोड़ना शुरू करता हूं संकलक त्रुटियों के साथ आता है। मजाकिया बात यह है कि मैं एक्लिप्स पर्यावरण के बाहर के उदाहरणों को ठीक कर सकता हूं। उदाहरण के लिए, मैं this पृष्ठ पर उदाहरणों का उपयोग कर रहा हूं और दिए गए निर्देशों का पालन करने से मुझे एक कामकाजी बाइनरी बनाने दो।ग्रहण

मुझे लगता है कि पहली समस्या यह है कि मुख्य जीटीके में फ़ाइल को अलग-अलग संदर्भित किया जाता है जब मैं ग्रहण के भीतर संकलित करने का प्रयास करता हूं। गैर ग्रहण संस्करण मैं साथ संकलन कर सकते हैं (उदाहरण के रूप में):

#include <gtk/gtk.h> 

हालांकि, ग्रहण के भीतर यह काम नहीं करता। मैं करने के लिए इसे बदलने की जरूरत है:

#include <gtk-2.0/gtk/gtk.h> 

को शामिल फ़ाइल तो पाया जा सकता है लेकिन संकलन प्रक्रिया तो GtkWidget प्रकार के बारे में त्रुटियों फेंक शुरू होता है। उदा .:

इन त्रुटियों में
#include <gtk-2.0/gtk/gtk.h> 

int main(int argc, char *argv[]) 
{ 
    GtkWidget *window; 

    gtk_init (&argc, &argv); 

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
    gtk_widget_show (window); 

    gtk_main(); 

    return 0; 
} 

परिणाम:

make all 
Building file: ../src/main.c 
Invoking: GCC C Compiler 
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.d" -o"src/main.o" "../src/main.c" 
../src/main.c: In function ‘main’: 
../src/main.c:7: error: ‘GtkWidget’ undeclared (first use in this function) 
../src/main.c:7: error: (Each undeclared identifier is reported only once 
../src/main.c:7: error: for each function it appears in.) 
../src/main.c:7: error: ‘window’ undeclared (first use in this function) 
../src/main.c:9: warning: implicit declaration of function ‘gtk_init’ 
../src/main.c:11: warning: implicit declaration of function ‘gtk_window_new’ 
../src/main.c:11: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function) 
../src/main.c:12: warning: implicit declaration of function ‘gtk_widget_show’ 
../src/main.c:14: warning: implicit declaration of function ‘gtk_main’ 
make: *** [src/main.o] Error 1 

सुनिश्चित नहीं हैं कि इस बारे में जाने के लिए कैसे। किसी भी सहायता की बहुत सराहना की जाएगी।

उत्तर

8

ग्रहण परियोजना पर राइट क्लिक करें और गुणों का चयन करें। कॉन्फ़िगरेशन ड्रॉप डाउन से, [ All configurations ] चुनें। तब उपकरण सेटिंग टैब पर GCC C Compiler (डिफ़ॉल्ट) का चयन करें और जोड़ने के अंत Command line pattern (विशेषज्ञ सेटिंग्स) के लिए निम्न बॉक्स:

`pkg-config --cflags --libs gtk+-2.0` 

GCC C Linker विकल्प के लिए एक ही बात करते हैं।

यदि आप gtk-2.0 के साथ अपने शामिल पथ को शुरू करना नहीं चाहते हैं, तो इसमें शामिल निर्देशिका (/usr/include/gtk-2.0) भी शामिल है, जैसा कि आर्डवर्र्क सुझाया गया है।

+1

के अंत में अपेक्षित '{' मुझे कॉन्फ़िगरेशन ड्रॉप डाउन नहीं मिल सका। क्या आप कृपया मेरी मदद करें ? –

+0

ग्रहण का कौन सा संस्करण आप उपयोग कर रहे हैं और आपने किस प्रकार की परियोजना बनाई है? मूल प्रश्न '0 9 से है, इसलिए चीजें बदल सकती हैं या ग्रहण यूआई में थोड़ा सा स्थानांतरित हो सकती हैं। – Luke

3

निर्माण पथ के लिए जीटीके निर्देशिका जोड़ने का प्रयास करें:

परियोजना में जाकर गुण -> C/C++ का निर्माण -> सेटिंग्स -> उपकरण सेटिंग्स -> निर्देशिकाएँ और रास्तों को शामिल करें तहत जोड़ें।

+0

धन्यवाद। उसने ग्रहण का ख्याल रखा gtk/gtk.h को पुन: स्थापित नहीं कर रहा है, लेकिन जब मैं संकलित करता हूं तो मुझे बहुत सारी त्रुटियां मिलती हैं। आखिरी दो थोड़े अजीब हैं: ../src/main।सी: 16: त्रुटि: प्रोटोटाइप फ़ंक्शन परिभाषा में पुरानी शैली पैरामीटर घोषणाएं ../src/main.c:16: त्रुटि: इनपुट – Luke

1

ग्रहण सीडीटी के लिए पीकेजी-कॉन्फ़िगर समर्थन पर विचार करने में एक लंबे समय तक प्रतीक्षा राहत जल्द ही आ रही है।

समर्थन विकास में है और अगस्त या उसके आसपास सीडीटी में एकीकृत किया जाएगा।

सबसे महत्वपूर्ण विशेषता यह है कि उपयोग करने में आसान उपयोगकर्ता इंटरफ़ेस आवश्यक संकुल का चयन करने की अनुमति देता है।

परियोजना वेबसाइट: http://code.google.com/p/pkg-config-support-for-eclipse-cdt/

अद्यतन:
http://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt
प्रतिक्रिया की सराहना की है: बीटा संस्करण का परीक्षण करने के लिए स्वतंत्र महसूस!

+0

ऐसा टूटा हुआ प्रतीत होता है - केवल libs जोड़े जाते हैं लेकिन पथ नहीं (ग्रहण ऑक्सीजन में) – OBu