פורסם 2010 בינואר 1315 שנים Xubuntu 9.04 שלום אני מנסה לקמפל תוכנית שכתבתי שמשתמשת ב netlink הורדתי את הספרייה libnl-dev גירסה 1.3 ואני מנסה להשתמש בפונקציה שנמצאת שם לפי התיעוד של הסיפרייה וחלק מהפונקציות האחרות של הסיפרייה אפילו משתמשות בה . אבל משום מה מקבל את השגיאה הבאה כל הזמן : gcc server.o list.o -o server -lnlserver.o: In function `main':server.c:(.text+0x15a): undefined reference to `nl_handle_get_fd'collect2: ld returned 1 exit status את החלק הראשון של הקימפול הוא עבר בסדר ככה שנראה לי שהאינקלודים תקינים . קטע הקוד הרלוונטי : nl_socket_modify_cb(sock, NL_CB_VALID, NL_CB_CUSTOM, getMessegeFromKernel, NULL); printf("waiting for kernel to connect ..."); code =0 ; //sendMessegeToKernel(); fcntl(nl_handle_get_fd(sock), F_SETFL, O_NONBLOCK); while (1) { nl_recvmsgs_default(sock); nl_recvmsgs_default(sock); sendMessegeToKernel(); } בעקרון אני מנסה לשנות את הסוקט למצב חוסם (blocking) - זה לא מה שמוגדר כרגע אבל נתחיל מלקמפל , אם מישהו מכיר דרך אחרת אשמח לשמוע
פורסם 2010 בינואר 1415 שנים הקוד שלך תקין (הוא עבר קימפול), הבעייה היא בלינקינג. חסרה לך הספרייה שמכילה את nl_handle_get_fd (או שיש לך אותה איפשהו, אבל לא הכנסת אותה ללינקר). תחפש את הפונקצייה הזאת בגוגל, תראה איזה ספרייה מכילה את זה, תשיג אותה ותכניס ללינקר.
פורסם 2010 בינואר 1515 שנים תנסה לעשות דבר כזה:nm libnl.soכשכמובן אתה בתיקייה שבה יושב libnl.so. זה אמור להדפיס את רשימת הסימבולים שבספריה, וככה תראה אם הפונקציה אכן מוגדרת שם.
פורסם 2010 בינואר 1515 שנים יש גם סיכוי ש-nllib תלויה בספריה אחרת כלשהי, תבדוק את רשימת ה-dependencies.
פורסם 2010 בינואר 1815 שנים מחבר נפתר - השתמשתי בפונקציה שעושה אותו דבר בשם טיפה שונה nl_socket_get_fdהסיבה עדיין לא ברורה לי אבל כנראה שמדובר בגירסה של libnl .תודה למי שהגיב .
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.