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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: Arman_gh در 05 امرداد 1386، 09:28 ق‌ظ

عنوان: مشکل در کامپایل یک برنامه C
ارسال شده توسط: Arman_gh در 05 امرداد 1386، 09:28 ق‌ظ
سلام دوستان هنگامی که می‌خواهم برنامه زیر را کامپایل کنم

#include <stdio.h> int main(){ printf("my name is arman"); return 0; }
با خطای زیر روبرو می‌شوم

1.c:1:19: error: stdio.h: No such file or directory 1.c: In function ‘main’: 1.c:3: warning: incompatible implicit declaration of built-in function ‘printf

راستی من با دستور زیر برنامه خودم را کامپایل می‌کنم

gcc 1.c -o 1
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: Arman_gh در 09 امرداد 1386، 09:55 ق‌ظ
دوستان کسی نیست پاسخ من را بدهد؟
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: omid در 09 امرداد 1386، 10:41 ق‌ظ
من همون رو کامپایل کردم مشکلی نبود البته به این صورت:

#include <stdio.h>
int main()
{
printf("my name is arman");
return 0;
}

عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: hasannoori در 09 امرداد 1386، 10:52 ق‌ظ
چیزی که مشخصه اینه که هدر فایل stdio.h موجود نیست.
البته میتونید اون رو از جایی دیگه کپی و در پوشه /usr/include/و یا /usr/include/c++/ بریزید.
این کدها رو امتحان کن:
#include <cstdio>
using namespace std;
 int main()
{
 printf("my name is arman\n");
 return 0;
}
کدها در سی پلاس هستند که میتونید در اون از سی استاندارد نیز استفاده کنید.
فایل رو با نام hello .cppذخیره کنید.
برای کامپایل هم:
g++ hello.cpp -o helloبرای اجراش هم:
./hello
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: مرتضی علیرضایی در 09 امرداد 1386، 11:02 ق‌ظ
من هم اوایل کار این مشکلات را داشتم. ولی حالا دیگه تمام بسته های سی و سی پلاس را نصب میکنم. هیچ مشکلی واسه کامپایل نیست.
این چند روز هم چند تا فایل هدر جدید EssyBMP و Magick گرفتم اونها هم راحت کامپایل شد.
عنوان: کامپایل یک برنامه C جهت اجرا در ویندوز
ارسال شده توسط: hasannoori در 10 امرداد 1386، 10:37 ق‌ظ
دوستان یک سوال مهم دارم.
آیا امکان این وجود دارد که کدهایی که در محیط گنو/لینوکس نوشته ایم طوری کامپایل کرد که در
ویندوز نیز کارایی داشته باشد.
یعنی بشود آنها را در محیط سیستم عامل لینوکس برای ویندوز کامپایلف کرد؟
ترجیحا از کامپایلر گنو استفاده نمود!
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: مهدی پیشگوی در 10 امرداد 1386، 10:48 ق‌ظ
دوستان یک سوال مهم دارم.
آیا امکان این وجود دارد که کدهایی که در محیط گنو/لینوکس نوشته ایم طوری کامپایل کرد که در
ویندوز نیز کارایی داشته باشد.
اگه کامپایلشون کنی 100٪ غیر ممکن هستش چون دو تا سیستم  عامل 100٪ با هعم فرق دارن .اگه نداشتن که الان ویندوز و بقیه سیستم عامل ها اصلا وجود نداشتن .
اگه تو پایتون و پرل و یا زبان های اسکریپتی دیگه بنویسی با کمی تغییر در همه سیستم عامل ها قابل اجرا هستن . و باز به شرطی که کامپایل نشن مثلا از فایلهای پایتون رو ویندوز Exe درست نکنی
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: arman_o71 در 10 امرداد 1386، 11:06 ق‌ظ
می‌شه ولی با لینوکس نه
یعنی کد رو طوری بنویسی که با چیزهایی مثل cygwin یا ++MSVC کامپایل بشه

البته چیزهایی مثل Net. این قابلیت رو دارند که روی چند سیستم عامل بدون تغییر اجرا شوند
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: lomion در 10 امرداد 1386، 08:54 ب‌ظ
امکان داره.
 اگه از کد C استاندارد استفاده کنید. اینطوری کامپایلرها میتونن کامپایل کنن. یا اینکه با ابزاری مثل MinGW کامپایل کنید که همون gcc تحت ویندوزه ولی محدود.
عنوان: کامپایل یک برنامه C جهت اجرا در ویندوز
ارسال شده توسط: hasannoori در 11 امرداد 1386، 10:27 ق‌ظ
متوجه سوال من نشدید !
من فقط خواستم طوری کامپایل بشه که تو ویندوز اجرا بشه و نه در هر دو سیستم.
یعنی تو لینوکس بنویسم و البته همونجا طوری کامپایل کنم که تو ویندوز اجرا بشه!
امیدوارم سوال مفهوم باشه :-X
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: مهدی پیشگوی در 11 امرداد 1386، 11:02 ق‌ظ
می تونید از زبان برنامه نویسی پایتون استفاده کنید و خروجی exe  داشته باشید .
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: hasannoori در 11 امرداد 1386، 11:23 ق‌ظ
من پایتون بلد نیستم :-[
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: مهدی پیشگوی در 11 امرداد 1386، 03:46 ب‌ظ
کل سیستم عامل ویندوز عجغ وجغ هستش و دلم نمی خواد بیشتر از این فکرمو براش معطل کنم
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: arman_o71 در 11 امرداد 1386، 11:10 ب‌ظ
امتحانش نکردم ولی می‌تونی از winegcc و ++wineg استفاده کنی این قابلیت رو دارن
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: hasannoori در 18 امرداد 1386، 10:33 ق‌ظ
دوستان مشکل دیگری در کامپایل برنامه های سی و سی پلاس هست:
--------------
یک واقعه عجیب
برنامه ساده زیر رو در نظر بگیرید:#include <iostream>
using namespace std;

int main ()
{
    cout << "  Hello! This is a console app." << endl;
       
return 0;   
}
خوب حتما میفرمایید که بسیار ساده است و بسادگی هم باید کامپایل و اجرا بشه!
حالا نتیجه کامپایل رو ببینید:$ gcc hello.cpp -o hello
/tmp/cczclmyY.o: In function `__static_initialization_and_destruction_0(int, int)':
hello.cpp:(.text+0x23): undefined reference to `std::ios_base::Init::Init()'
/tmp/cczclmyY.o: In function `__tcf_0':
hello.cpp:(.text+0x6c): undefined reference to `std::ios_base::Init::~Init()'
/tmp/cczclmyY.o: In function `main':
hello.cpp:(.text+0x8e): undefined reference to `std::cout'
hello.cpp:(.text+0x93): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
hello.cpp:(.text+0x9b): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
hello.cpp:(.text+0xa3): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
hello.cpp:(.text+0xb2): undefined reference to `std::cout'
hello.cpp:(.text+0xb7): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
hello.cpp:(.text+0xbf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
hello.cpp:(.text+0xc7): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
hello.cpp:(.text+0xd6): undefined reference to `std::cout'
hello.cpp:(.text+0xdb): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
hello.cpp:(.text+0xe3): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
hello.cpp:(.text+0xeb): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/cczclmyY.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
البته وقتی هم که از دستور cc hello.cpp -o hello هم استفاده کردم نتیجه مشابهی گرفتم، ولی از همه عجیبتر اینه که وقتی اون رو با دستور زیر کامپایل کردم:$ g++ hello.cpp -o hello
$ ./hello

Hello! This is a console app.
به خوبی کامپایل و اجرا شد.  :o
کسی توجیحی برای این مورد داره!؟
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: omid در 18 امرداد 1386، 12:49 ب‌ظ
gcc کامپایلر c هست و ++g کامپایلر ++C و برنامی های که شما نوشتین هم ++C هست ;-)
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: Natilous در 18 امرداد 1386، 03:00 ب‌ظ
همانطور که در بالا گفتند ++g کامپایلر ++c  هست البته شما می‌تونید باهاش برنامه‌های c  را هم کامپایل کنید .
یه نکته دیگه هم اینکه اگه پسوند فایل شما cpp و کد داخلش C باشه نمی‌تونید با gcc اون رو کامپایل کنید . باید حتما پسوندها رعایت بشه !  :)
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: hasannoori در 21 امرداد 1386، 10:30 ق‌ظ
دوست عزیز ممنون از پاسختون ولی باید عرض کنم این مشکل بصورت عمومی هست،
یعنی من تمام فرمایشات شما رو انجام دادم(قبل از این) ولی همچنان مشکل برقرار بود.
بنابراین تصمیم گرفتم توانجمن مطرح کنم.
ضمن اینکه من با g++ کئهای سی و سی پلاس هر دو رو کامپال می کنم.
ولی در هر دو مورد بالا نمیتونم از ccیا gccاستفاده کنم.
همینطور من همیشه پسوند مناسب رو رعایت میکنم ولی همواره این مشکل رو دارم.
ممنون از پاسختون ولی مشکل من حل نشد! :'(
عنوان: پاسخ به: مشکل در کامپایل یک برنامه C
ارسال شده توسط: arman_o71 در 21 امرداد 1386، 04:27 ب‌ظ
همان طور که دوستان گفتند gcc به هیچ وجه کد ++C رو کمپایل نمی‌کنه حتی اگر پسوندش cpp و cxx و ... باشه