ورود

نسخه کامل مشاهده نسخه کامل : یک مشکل ساده در C++ !



wickietetsu
07-07-2011, 18:21
با سلام
من در حال خواندن کتاب how to c++ deitel & deitel هستم .
در قسمت:
Fig03_11_13
به مشکل کامپایل نشدن فایلها برخوردم.

نرم افزار: ماکروسافت ویژوال استدیو 2010
پروژه:
win32 concole application

فایلها بدین صورت هستند:



fig03_13.cpp



#include "stdafx.h"
#include <iostream>
using std::cout;
using std::endl;

#include "GradeBook.h" // include definition of class GradeBook

int main()
{
GradeBook gradeBook1( "CS101 Introduction to C++ Programming" );
GradeBook gradeBook2( "CS102 Data Structures in C++" );

cout << "gradeBook1 created for course: " << gradeBook1.getCourseName()
<< "\ngradeBook2 created for course: " << gradeBook2.getCourseName()
<< endl;
return 0;
}


GradeBook.cpp


#include <iostream>
using std::cout;
using std::endl;

#include "GradeBook.h"

GradeBook::GradeBook( string name )
{
setCourseName( name );
}

void GradeBook::setCourseName( string name )
{
courseName = name;
}

string GradeBook::getCourseName()
{
return courseName;
}

void GradeBook::displayMessage()
{
cout << "Welcome to the grade book for\n" << getCourseName()
<< "!" << endl;
}



GradeBook.h

#include <string>
using std::string;

class GradeBook
{
public:
GradeBook( string );
void setCourseName( string );
string getCourseName();
void displayMessage();
private:
string courseName;
};


این هم اروری که میده:



1>------ Build started: Project: B, Configuration: Debug Win32 ------
1>Build started 2011/07/07 07:12:39 ب.ظ.
1>InitializeBuildStatus:
1> Touching "Debug\B.unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1> B.cpp
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>B.obj : error LNK2019: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall GradeBook::getCourseName(void)" (?getCourseName@GradeBook@@QAE?AV?$basic_string@DU ?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function _main
1>B.obj : error LNK2019: unresolved external symbol "public: __thiscall GradeBook::GradeBook(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??0GradeBook@@QAE@V?$basic_string@DU?$char_traits @D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main
1>c:\documents and settings\hamid\my documents\visual studio 2010\Projects\B\Debug\B.exe : fatal error LNK1120: 2 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.46
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



ممنون میشم راهنماییم کنین. [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

m.m.m5651
07-07-2011, 21:59
settings>compiler and debugger>toolchain tab>auto select

wickietetsu
08-07-2011, 05:41
settings>compiler and debugger>toolchain tab>auto select

ممنون
ولی این آدرسی که گفتین در ویژوال استدیو وجود نداره. یا من پیدا نکردم.

m.m.m5651
08-07-2011, 16:30
خوب از code::blocks استفاده کنید. بهتر هم هست.

wickietetsu
08-07-2011, 23:11
خوب از code::blocks استفاده کنید. بهتر هم هست.

دانلود کردم اونو.
اول اینکه: یه جا خوندم که کامل کننده کد ها رو داره ولی من که چیزی ندیدم !
دوم اینکه چطوری باید کامپایل کرد؟ اصلا شبیه VS نیست.

wickietetsu
09-07-2011, 10:39
خوب از code::blocks استفاده کنید. بهتر هم هست.


اشکالاتشو حل کردم ولی
باز اون پروژه رو ارور میده.

لطفا بگین از کدوم نوع پروژه باید استفاده کنم؟؟؟؟
فعلا از console application استفاده میکنم و به غیر از این پروژه قبلیها رو بخوبی کامپایل میکنه.

wickietetsu
09-07-2011, 17:33
بالاخره مشکل حل شد :5:

دو تا اشتباه داشتم.
یکی اینکه کپی کردن دو تا فایل دیگه صرفا کافی نبود و باید با استفاده از گزینه project > add Existing item اون دو تا فایل رو انتخاب میکردم و یا با استفاده از گزینه project > add item نوع فایل ها رو انتخاب می کردم و کدها رو داخلشون قرار می دادم.

اشتباه دوم هم این بود که کد مقابل رو فقط در فایل اصلی (fig03_13.cpp) نوشته بودم ولی در فایل GradeBook.cpp نذاشته بودم. ( ویژوال استدیو همیشه این رو در فایلهای cpp انگار لازم داره)


code:
#include "stdafx.h"
////end