PDA

View Full Version : تفاوتهای کدنویسی ++C در محیط ویندوز و لینوکس



tux-world
چهارشنبه 08 مرداد 1393, 23:37 عصر
سلام دوستان. من بعد مدتها به سمت سی برگشتم تا بعد از یاد گرفتش برم سمت کیوت. مشکلم اینه که آموزشهایی که هستن تو لینوکس نمیتونم کدها رو کامپایل کنم به هدر و تابع main گیر میده. انگار تفاوتهایی بین ایناست که من نتونستم رفرنس مناسبی پیدا کنم. ممنون میشم راهنمایی کنید


#include <iostream>
using namespace std;
int main()
{
std::cout<< "salam";
return 1;
}


خطا:


tux-world@alachiq:~ > gcc test.cpp
/tmp/ccdqoTMG.o: In function `main':
test.cpp:(.text+0x14): undefined reference to `std::cout'
test.cpp:(.text+0x19): 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*)'
/tmp/ccdqoTMG.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x41): undefined reference to `std::ios_base::Init::Init()'
test.cpp:(.text+0x58): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status

amir.bakhtiari
چهارشنبه 08 مرداد 1393, 23:57 عصر
سلام

اینو تست کن:
g++ test.cpp -o test

احسان!
پنج شنبه 09 مرداد 1393, 00:30 صبح
با خود سی نیمشه با کیوت کار کرد.(البته یه جورایی میشه ولی کلی درد سر داره و نتیجه درست نمیده.)
gcc برای C هستش.همونطور که amir.bakhtiari (http://barnamenevis.org/member.php?180572-amir-bakhtiari) گفتن باید با g++ ترجمه کنید.

tux-world
پنج شنبه 09 مرداد 1393, 00:49 صبح
البته منظورم از سی همون سی پلاس بود. برای سی پلاس الان کتاهایی که میخونم یکی دایتل اند دایتل هستش و یکی هم ساختمان داده ها که آقای قلزم زحمتش رو کشیدن. ممنون از راهنماییهاتون دوستان

motherboard
پنج شنبه 09 مرداد 1393, 19:17 عصر
والا من لینوکس ندارم.اما نباید کدها تفاوت خاصی رو داشته باشند. gcc ام که اصلا مختص لینوکس هستش.کدی که نوشتی مشکل نداره.مشکل اون کامپایلره هستش.یک نگاهی بکن و بگو کامپایلرت چی هستش.من فکر می کنم که شما gcc تحت ویندوز رو نصب کردی!!!! والا برای من هم جالبه.کاش یک عکسی قرار می دادی

tux-world
پنج شنبه 09 مرداد 1393, 22:17 عصر
راستش من ویندوز ندارم. در کل برام استفاده ای هم نداره اگرم داشته باشه نمی ارزه رو سیستمم نصبش کنم. و فقط تونستم که متن خطا رو بزارم. کامپایلرم رو به پیشنهاد دوستان ++g انتخاب کردم و مشکلم حل شد

Megabyte
شنبه 11 مرداد 1393, 11:17 صبح
درسته کد ها تفاوتی ندارن.دلیل اون خطا هم اینه که اگه از gcc استفاده کنید به طور خودکار برنامه رو با libstd++ پیوند نمیزنه.باید از g++ استفاده کنید.البته فکر کنم تو نسخه های اخیر رفع شده باشه.

tux-world
شنبه 11 مرداد 1393, 13:35 عصر
در مورد این libstd++ یه توضیحی میدین؟ جالب شد برام