回 帖 发 新 帖 刷新版面

主题:VC6.0总是提示lnk错误,困扰几天了,真心麻烦大家帮帮忙

用VC6.0建立工程实现类的接口与实现分离的时候第一次可以正常运行,但是后来在运行测试文件的时候总是提示lnk错误,提示如下:

--------------------Configuration: 3_13 - Win32 Debug--------------------
Linking...
3_13.obj : error LNK2001: 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)
3_13.obj : error LNK2001: 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?$allo
cator@D@2@@std@@@Z)
Debug/3_13.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.

3_13.exe - 1 error(s), 0 warning(s)


所有建立的每个工程都是这样,从网上下载其他源代码也是这样的错误,重装了很多版本的VC6.0,包括电脑系统也重装了2次,网上看了很多解决方法一一试了都没解决,真心麻烦大家了!

回复列表 (共6个回复)

沙发

fatal error LNK1120: 2 unresolved externals
这个错误是说,你声明了一些符号,并且使用了这些符号。但是没有找到这些符号的定义。

你看看GradeBook::GradeBook、GradeBook::getCourseName这两个函数,是否能找到函数体?

板凳


有函数体的

3 楼

[code=c] #include #include using namespace std; class GradeBook { public: GradeBook(string); void setCourseName(string); string getCourseName(); void displayMessage(); private: string courseName; }; #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 for the course:"<

4 楼

[code=c] #include #include using namespace std; class GradeBook { public: GradeBook(string); void setCourseName(string); string getCourseName(); void displayMessage(); private: string courseName; }; #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 for the course:"<

5 楼

我这里用Visual Studio 2010编译没有问题,一时间也没有找VC6帮你测试了。
主要思路:
1、看你的代码一次性贴出来,不知道分了几个文件?
2、如果是有多个cpp文件,是否每个cpp都加入到工程里面了?
3、把所有的代码全部都放到一个cpp文件里面,看是否能编译通过?

现在论坛,贴代码的功能有问题,IE浏览器的话只有右键菜单“显示源文件”才能看到正确的源代码。帮楼主重新贴一下。
[quote]#include<string>
#include<iostream>
 
using namespace std;

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





// #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 for the course:"<<getCourseName()<<endl;
    }




// #include "GradeBook.h"

int main()
{
   GradeBook gradeBook1("CS01");
   GradeBook gradeBook2("CS02");

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

6 楼

[em11][em11][em11]



选择千锋 选择卓越  千锋3G 手机软件开发培训第一品牌

[url=http://www.mobiletrain.org/]iOS培训[/url]   [url=http://www.mobiletrain.org/]北京iOS培训[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册