انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: افزودن کتابخانه cs50 به xubuntu 12.04  (دفعات بازدید: 1162 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین بهروز رمضانی

  • High Hero Member
  • *
  • ارسال: 1111
  • جنسیت : پسر
  • Kakashi Hatake
    • ابونتو نیوز
افزودن کتابخانه cs50 به xubuntu 12.04
« : 28 اسفند 1392، 10:58 ق‌ظ »
سلام
قصد دارم کتابخانه cs50 را به زوبونتو اضافه کنم . طبق این راهنما عمل کردم اما زمان کامپایل ارور زیر را میده .
https://manual.cs50.net/library/#_debian_ubuntu
این متن برنامه و ارور آن
#include <cs50.h>
#include <stdio.h>

int main(void)
{
string name;
printf("Whats is your name?\n");
name = GetString();
printf("hello,%s\n",name);
}

behrooz@behrooz-Lenovo-G500:~/Documents/c++$ clang -o hello hello.c
/tmp/hello-lhP1sh.o: In function `main':
hello.c:(.text+0x22): undefined reference to `GetString'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین احمد حمزه ئی

  • Jr. Member
  • *
  • ارسال: 66
  • جنسیت : پسر
    • Github
پاسخ : افزودن کتابخانه cs50 به xubuntu 12.04
« پاسخ #1 : 28 اسفند 1392، 10:18 ب‌ظ »
سلام منم از Xubuntu 12.04 استفاده می کنم!
فکر کنم باید مسیر کتابخانه رو هم به کامپایلر بدید:
ahmad@ahmad-desktop:~/test$ cat hello.c
#include <cs50.h>
#include <stdio.h>
int main(void)
{
string name;
printf("Whats is your name?\n");
name = GetString();
printf("hello,%s\n",name);
return 0;
}
ahmad@ahmad-desktop:~/test$ gcc -O2 -o hello.out hello.c /usr/local/lib/libcs50.a
ahmad@ahmad-desktop:~/test$ ./hello.out
Whats is your name?
Ahmad
hello,Ahmad

تا حالا از clang استفاده نکردم اما احتمالا باید مثل gcc مسیر کتابخانه رو وارد کنید.

آفلاین بهروز رمضانی

  • High Hero Member
  • *
  • ارسال: 1111
  • جنسیت : پسر
  • Kakashi Hatake
    • ابونتو نیوز
پاسخ : افزودن کتابخانه cs50 به xubuntu 12.04
« پاسخ #2 : 28 اسفند 1392، 10:41 ب‌ظ »
با دستور زیر میتونم سورس را کامپایل کنم .
clang -o hello hello.c -lcs50
اما جالب هست ، در فیلم آموزشی که گذاشتن دستور بالا بدونه سوئیچ اخری یعنی
-lcs50سورس را کامپایل میکنه و هر دو دستور هم یک خروجی را میده ، این تفاوت از کجا نشات میگیره ؟
در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین احمد حمزه ئی

  • Jr. Member
  • *
  • ارسال: 66
  • جنسیت : پسر
    • Github
پاسخ : افزودن کتابخانه cs50 به xubuntu 12.04
« پاسخ #3 : 28 اسفند 1392، 11:57 ب‌ظ »
این تفاوت از کجا نشات میگیره ؟
والا فکر می کنم که کامپایلر بصورت پیش فرض فقط کتابخانه استاندارد زبان سی رو جستجو می کنه.
و برای استفاده از بقیه کتابخانه ها باید نام کتابخانه رو به کامپایلر بدیم.
در مورد اینکه چطور توی فیلم بدون دادن نام کتابخانه، تونستن برنامه رو کامپایل کنن نظری ندارم!
اما میشه با نوشتن Makefile کار کامپایل رو فقط با یه دستور make انجامش داد.
این طوری نیاز نیست که هر دفعه دستور کامپایل رو بنویسیم.

آفلاین بهروز رمضانی

  • High Hero Member
  • *
  • ارسال: 1111
  • جنسیت : پسر
  • Kakashi Hatake
    • ابونتو نیوز
پاسخ : افزودن کتابخانه cs50 به xubuntu 12.04
« پاسخ #4 : 01 فروردین 1393، 12:12 ب‌ظ »
نقل‌قول
اما میشه با نوشتن Makefile کار کامپایل رو فقط با یه دستور make انجامش داد.
چطور میتونم این کار را انجام بدم
در یادگیری و استفاده از خط فرمان کوشا باشید چرا که رستگاری شما در آن است.

آفلاین احمد حمزه ئی

  • Jr. Member
  • *
  • ارسال: 66
  • جنسیت : پسر
    • Github
پاسخ : افزودن کتابخانه cs50 به xubuntu 12.04
« پاسخ #5 : 02 فروردین 1393، 09:44 ب‌ظ »
چطور میتونم این کار را انجام بدم
موضوع توضیح مختصری درباره make رو مطالعه کنید.
مطالعه موضوع توضیحات مختصری درباره کامپایلر و cflags هم خالی از لطف نیست.