انجمنهای فارسی اوبونتو
تازه کار => انجمن تازهکاران => نویسنده: SFatemeM در 15 اسفند 1393، 06:28 بظ
-
سلام. یه مشکلی در برنامه داشتم.
در این کد از کتابخانه آمادهاستفاده میکنم.این کد رو که داخل ترمینال لینوکس میزنم و با این کد کامپایل میکنم:
gcc -L/home/OS -Wall test.c -o test
این error رو میدهد
undefind reference to 'openPort'
به این لینک " http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html " هم مراجعه کردم و مرحله 3 رو انجام دادم ولی باز هم حل نشد !!
مثلا این تابع ساده زیر رو نوشتم که استفاده این کتابخونه رو ببینم ...
ممنون میشم راهنماییم کنین.
[left]
#include "libwebserver.h"
#include <stdio.h>
int main()
{
int sockfd=0;
sockfd=openPort(8080);
printf("Hellow: %d",sockfd);
}
[/left]
-
لطفا چک کنین ببینین داخل فایل libwebserver.h تابعی به اسم openPort وجود داره؟
البته بدیهیه که در این شیوه ی کامپایل ، فایل libwebserver.h باید در دایرکتوری کد برنامه قرار داشته باشه
-
سوییچ lwebserver- رو هم به دستور کامپایل gcc اضافه کن
-
لطفا چک کنین ببینین داخل فایل libwebserver.h تابعی به اسم openPort وجود داره؟
البته بدیهیه که در این شیوه ی کامپایل ، فایل libwebserver.h باید در دایرکتوری کد برنامه قرار داشته باشه
بله داخل فایل برنامه این تابع وجود داره.
فایل libwebserver.h هم در دایرکتوری کد برنامه وجود دارد !
-
سوییچ lwebserver- رو هم به دستور کامپایل gcc اضافه کن
این سوییچ رو هم اضافه کردم ولی باز همون error رو داد !!
-
لطفا محتوای تابع openPort رو اینجا بذارید.به نظرم باید سویچ مناسب رو پیدا کنیم
-
لطفا محتوای تابع openPort رو اینجا بذارید.به نظرم باید سویچ مناسب رو پیدا کنیم
کتابخونهها رو آماده دادن. من خودم ننوشتم تابعها رو .
کامپایل درست شد! مشکل از فایل کتابخونه بوده . مثل اینکه فایلی که نوشته بودن واسه 64 بیت بوده و چیزی که ماها نصب کرده بودیم 32 بیت بوده و نمیتونسته ارجاع بده ...
ممنون از راهنمایی همه :)