עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

שגיאת לינקינג בסיפרייה nllib שפה: C , לינוקס

Featured Replies

פורסם

Xubuntu 9.04

שלום

אני מנסה לקמפל תוכנית שכתבתי שמשתמשת ב netlink הורדתי את הספרייה libnl-dev גירסה 1.3 ואני מנסה להשתמש בפונקציה שנמצאת שם לפי התיעוד של הסיפרייה וחלק מהפונקציות האחרות של הסיפרייה אפילו משתמשות בה .

אבל משום מה מקבל את השגיאה הבאה כל הזמן :

gcc server.o list.o -o server -lnl
server.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) - זה לא מה שמוגדר כרגע אבל נתחיל מלקמפל , אם מישהו מכיר דרך אחרת אשמח לשמוע :)

פורסם

הקוד שלך תקין (הוא עבר קימפול), הבעייה היא בלינקינג. חסרה לך הספרייה שמכילה את nl_handle_get_fd (או שיש לך אותה איפשהו, אבל לא הכנסת אותה ללינקר).

תחפש את הפונקצייה הזאת בגוגל, תראה איזה ספרייה מכילה את זה, תשיג אותה ותכניס ללינקר.

פורסם

תנסה לעשות דבר כזה:

nm libnl.so

כשכמובן אתה בתיקייה שבה יושב libnl.so. זה אמור להדפיס את רשימת הסימבולים שבספריה, וככה תראה אם הפונקציה אכן מוגדרת שם.

פורסם

יש גם סיכוי ש-nllib תלויה בספריה אחרת כלשהי, תבדוק את רשימת ה-dependencies.

פורסם
  • מחבר

נפתר - השתמשתי בפונקציה שעושה אותו דבר בשם טיפה שונה nl_socket_get_fd

הסיבה עדיין לא ברורה לי אבל כנראה שמדובר בגירסה של libnl .

תודה למי שהגיב .

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.