ساحت

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

Posted in نرم افزار by محمد 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"
}

و مشکل حله.

Advertisements

یک پاسخ

Subscribe to comments with RSS.

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

    هان؟!!!


پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: