c - MSFT build, cl, and link with cross-library dependencies -


पदानुक्रम

  \ folder1 cpu.h cpu.c स्रोत \ फ़ोल्डर 2 mem.h mem । सी स्रोतों dirs   

cpu.h

  ... # परिभाषित नहीं है ... ... चक्करटास्टा (अहस्ताक्षरित int a); ....   

cpu.c <पूर्व> #include & lt; cpu.h & gt; इंट चक टेस्टा (अहस्ताक्षरित पूर्णांक) {...}

mem.c <पूर्व> #include & lt; cpu.h & gt; // एक extern int चकटास्ता (अहस्ताक्षरित int एक); // बी cout & lt; & lt; नहीं & lt; & lt; endl; // सी cout & lt; & lt; chuckTesta (1); // D

क्या cpu.lib को फ़ोल्डर 2 में फाइलों से लिंक करने और इन आवश्यकताओं को पूरा करने का कोई तरीका है?

  • पंक्ति A को निकालें
  • लाइन सी और डी अभी भी काम
  • कोई चेतावनी के साथ संकलन और लिंक (अभी मैं या तो अनसुलझे बाहरी प्रतीक, या परिभाषा त्रुटियां प्राप्त कर रहा हूं)

    नोट : फ़ोल्डर 2 के स्रोत फ़ाइल में केवल फ़ोल्ड 2 के भीतर फाइलों को संकलित किया जाता है, और फ़ोल्डर 1 को एक पथ के रूप में शामिल किया गया है। इसी तरह फ़ोल्डर 1 के साथ प्रत्येक क्रमशः एक .lib फ़ाइल, cpu.lib और mem.lib बनाएँ।

    मैं Windows8 के लिए LINK, CL, और building का उपयोग कर रहा हूं।

    रेखा A को निकालने की समस्या #define nope 0 है। यदि आप cpu.lib में एक स्थिर पूर्णांक (या एक जोड़) को परिभाषित करते हैं, तो उसे काम करना चाहिए। बस सुनिश्चित करें कि आप अंतिम निष्पादन योग्य में cpu.lib और mem.lib दोनों से लिंक करते हैं।

    cpu.h

      ... #define nope 0 static int cpu_nope = नहीं; ... इंट चक टेस्टा (अहस्ताक्षरित एक ए); ....   

    mem.c

      extern int chuckTesta (अहस्ताक्षरित int a); बाहरी इंट cpu_nope; Cout & lt; & lt; Cpu_nope & lt; & lt; endl; Cout & lt; & lt; chuckTesta (1);    

Comments