ساحت

استفاده از کتابخانه C در CPP

Posted in نرم افزار by Mohammad on فوریه 27, 2009

برای حل موثر یک دستگاه معادلات نیاز به استفاده از یک کتابخانه به اسم LASPACK داشتم. برنامه من با C++ نوشته شده بود ولی LASPACK با C نوشته شده و همین مساله موجب میشد که موقع لینک کردن، مرتب خطای undefined reference رو بگیرم. کلید حل این مشکل استفاده از کلمه کلیدی extern بود.
در حالت عادی برای باز کردن یک کتابخونه کافیه از include استفاده بشه. مثلا:


#include "laspack/laspack.h"

ولی اگر توابع داخل کتابخونه به زبان دیگه ای غیر از c++ باشه، این دستور خطایی که گفته شد رو تولید میکنه. علت اینه که ظاهرا امضایی
که برای توابع c و c++ موقع کامپایل تولید میشه با هم فرق داره. برای حل این مساله کافی بود تا از extern به شکل زیر استفاده کنم:

extern "C"
{
#include "laspack/laspack.h"
}

و مشکل حله.

یک پاسخ

Subscribe to comments with RSS.

  1. ابک said, on مارس 1, 2009 at 3:33 ق.ظ.

    هان؟!!!


برای ابک پاسخی بگذارید لغو پاسخ