سؤال

وأريد استخدام libgadu (مكتبة بروتوكول الرسائل الفورية) تحت البصرية ستوديو 2008. لقد تم تحميل libgadu http://toxygen.net/libgadu/files/ libgadu-1.8.2.tar.gz و تحت سيغوين لقد قمت بتجميع ذلك - ./configure، وجعل، جعل تركيب. ملف libgadu.h التي appeard في ما يلي المجلد الأول نسخها إلى مجلد آخر والتي وضعت في VS كدليل الملفات بما في ذلك.

وكنت أرغب في ترجمة التعليمات البرمجية من الوثائق

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <libgadu.h>

using namespace std;

int main(void)
{
    char password[]= "haslo";
    struct gg_session *sesja;
    struct gg_login_params parametry;
    struct gg_event *zdarzenie;

    memset(&parametry, 0, sizeof(parametry));
    parametry.uin = 12345;
    parametry.password = password;
    parametry.async = 1;
    parametry.status = GG_STATUS_INVISIBLE;


    sesja = gg_login(&parametry);
    if (!sesja) {
        cout << "Can't connect" << endl;
       exit(1);
    }

    system("PAUSE");
}

وخلال تجميع أنا أستلم خطأين:

Error   1   error LNK2019: unresolved external symbol _gg_login referenced in function _main    1.obj
Error   2   fatal error LNK1120: 1 unresolved externals 

وماذا علي أن أفعل معها؟

هل كانت مفيدة؟

المحلول

وتحتاج إلى تحديد موقع DLL التي تم تجميعها وملف LIB، أو ملف فقط LIB إذا تم إعداده قبل أن تتحول إلى مكتبة ثابتة. من المحتمل أن تكون تسمية الملفات libgadu.dll وlibgadu.lib.

وبمجرد الانتهاء من تلك، يمكنك إرشاد Visual Studio لربط مع ملف LIB عن طريق تحديد خصائص المشروع وتحديد مكان وجود التبعيات إضافية تحت إعدادات رابط.

وأضيف libgadu إلى قائمة تبعيات إضافية لكافة تكوينات.

نصائح أخرى

وكما قال فرانك بالفعل، وهذا يعني عادة مكتبة (.LIB أو. DLL) لا يحصل مرتبط مقابل. ومع ذلك، إذا لم يكن للترجمة ناجحة خلق. DLL أو .LIB الملفات، ثم الحالة الأكثر احتمالا هو أن أنظمة البناء بين سيغوين وVS متزامنة.

وعلى وجه التحديد، لم يتم الحصول على الإشارة ملف في ملف المشروع VS. لدى شعور أنه libgagdu.c نفسها هناك وظيفة gg_login المحددة في ذلك.

وأضيف هذا الملف إلى المشروع وإعادة البناء. اذا كان يعمل، اتصل المطورين libgadu حتى يتمكنوا من إصلاحه على نهايتها.

وإنه لأمر غريب، لأنه خلال ./configure، وجعل في سيغوين، فإنه لا يخلق أي .dll و .LIB الملفات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top