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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: سالار مقدم در 28 مهر 1392، 08:36 ب‌ظ

عنوان: کامپایل نشدن برنامه ی چند منبعی در سی پلاس پلاس
ارسال شده توسط: سالار مقدم در 28 مهر 1392، 08:36 ب‌ظ
دوستان بابت عنوان معذرت واقعا نمی دونستم چجوری به فارسی بگم :دی
من یه برنامه نوشتم ( سادست برای درک کلاس جدا از منبع اصلی ) که متشکل از سه سورس main.cpp GradeBook.cpp GradeBook.h عه و محتویاتش :
GradeBook.h:
#include <string>

using namespace std;

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


GradeBook.cpp:
#include <iostream>
#include "/home/salar/Programing/C++/my/g/GradeBook.h"

using namespace std;

GradeBook::GradeBook( string course )
{
    setCourseName( course );
}
void GradeBook::setCourseName( string name )
{
    courseName = name;
}
string GradeBook::getCourseName()
{
    return courseName;
}
void GradeBook::displayMessage()
{
    cout << "Welcome to\n" << getCourseName();
}


main.cpp
#include <iostream>
#include "/home/salar/Programing/C++/my/g/GradeBook.h"

using namespace std;

int main()
{
    GradeBook myGrade( "test" );
    myGrade.displayMessage();
}


متن ارور در جی پلاس پلاس:
salar@moghaddam:~/Programing/C++/my/g$ g++ main.cpp
/tmp/ccfoZTv8.o: In function `main':
main.cpp:(.text+0x39): undefined reference to `GradeBook::GradeBook(std::string)'
main.cpp:(.text+0x5d): undefined reference to `GradeBook::displayMessage()'
collect2: error: ld returned 1 exit status
مشکل اینجاست که این کد در ویژوال استادیو کامپایل میشه اما در جینی و کدبلاکس (همون کامپایلر جی پلاس پلاس ) کامپایل نمیشه! به وضوح یه مشکلی تو جی پلاس پلاس هست، باید آرگومان خاصی بدم؟ مشکل چیه؟
عنوان: پاسخ : کامپایل نشدن برنامه ی چند منبعی در سی پلاس پلاس
ارسال شده توسط: doomhammer65ir در 28 مهر 1392، 10:52 ب‌ظ
GradeBook‌را که کامپایل نکردید :g++ GradeBook.cpp main.cpp -o main
./main