为什么VC6.0中用一个main.cpp调用几个类文件可以通过编译,但无法生成exe文件???
如下:
#include <iostream>#include "CustomerManager.h"
#include "ProductManager.h"
using namespace std;void Menu();int main()
{
Menu(); return 0;
}void Menu()
{
enum MenuChoice
{
mcExit = 0,
mcCustomer = 1,
mcInventory = 2,
mcSales = 3
}; int choice; cout << "Teach Yourself C++ in 21 Days Project\n";
cout << " 1. Customer\n";
cout << " 2. Inventory\n";
cout << " 3. Sales\n";
cout << " 0. Exit\n";
cout << "Enter your choice: ";
cin >> choice;
cin.ignore(); if (choice == mcCustomer)
{
CustomerManager custManager;
custManager.AddCustomer();
}
else
{
if (choice == mcInventory)
{
ProductManager prodManager;
prodManager.AddProduct();
}
else
{
if (choice == mcSales)
cout << "Under construction\n";
else
{
if (choice == mcExit)
cout << "See you next time!\n";
else
cout << "Oops, wrong choice\n";
}
}
}
}编译后编译器显示为:
--------------------Configuration: main - Win32 Debug--------------------
Compiling...
main.cpp
main.obj - 0 error(s), 0 warning(s)但选择"构建mian.exe"就会出现如下报错:
--------------------Configuration: main - Win32 Debug--------------------
Linking...
main.obj : error LNK2001: unresolved external symbol "public: __thiscall ProductManager::~ProductManager(void)" (??1ProductManager@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall ProductManager::AddProduct(void)const " (?AddProduct@ProductManager@@QBEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall ProductManager::ProductManager(void)" (??0ProductManager@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CustomerManager::~CustomerManager(void)" (??1CustomerManager@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall CustomerManager::AddCustomer(void)const " (?AddCustomer@CustomerManager@@QBEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CustomerManager::CustomerManager(void)" (??0CustomerManager@@QAE@XZ)
Debug/main.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.main.exe - 7 error(s), 0 warning(s)那位高手能告诉我为什么会出现这样的错误,怎样解决啊????多谢了!!
如下:
#include <iostream>#include "CustomerManager.h"
#include "ProductManager.h"
using namespace std;void Menu();int main()
{
Menu(); return 0;
}void Menu()
{
enum MenuChoice
{
mcExit = 0,
mcCustomer = 1,
mcInventory = 2,
mcSales = 3
}; int choice; cout << "Teach Yourself C++ in 21 Days Project\n";
cout << " 1. Customer\n";
cout << " 2. Inventory\n";
cout << " 3. Sales\n";
cout << " 0. Exit\n";
cout << "Enter your choice: ";
cin >> choice;
cin.ignore(); if (choice == mcCustomer)
{
CustomerManager custManager;
custManager.AddCustomer();
}
else
{
if (choice == mcInventory)
{
ProductManager prodManager;
prodManager.AddProduct();
}
else
{
if (choice == mcSales)
cout << "Under construction\n";
else
{
if (choice == mcExit)
cout << "See you next time!\n";
else
cout << "Oops, wrong choice\n";
}
}
}
}编译后编译器显示为:
--------------------Configuration: main - Win32 Debug--------------------
Compiling...
main.cpp
main.obj - 0 error(s), 0 warning(s)但选择"构建mian.exe"就会出现如下报错:
--------------------Configuration: main - Win32 Debug--------------------
Linking...
main.obj : error LNK2001: unresolved external symbol "public: __thiscall ProductManager::~ProductManager(void)" (??1ProductManager@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall ProductManager::AddProduct(void)const " (?AddProduct@ProductManager@@QBEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall ProductManager::ProductManager(void)" (??0ProductManager@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CustomerManager::~CustomerManager(void)" (??1CustomerManager@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall CustomerManager::AddCustomer(void)const " (?AddCustomer@CustomerManager@@QBEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CustomerManager::CustomerManager(void)" (??0CustomerManager@@QAE@XZ)
Debug/main.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.main.exe - 7 error(s), 0 warning(s)那位高手能告诉我为什么会出现这样的错误,怎样解决啊????多谢了!!
应该不难解决[email protected]
我也知道那样可以解决问题,但是我现在的目的就是要把类文件和mian.cpp分开来啊to:nonocast(如果你信仰光明,那是因为到处都是黑暗!)
好,那谢谢你了
Project->Add to Project ->Files,将cpp文件加入工程即可
???????
是把整个工程的所有文件都加入工作区吗?? 怎么加啊???
没有你说的错误你可以按以下方法运行该程序
1.打开Visual C++
2.new一个新工程,选择Win32 Console Application,并输入工程名
3.在OK后选择An empty project后Finish
4.将八个源文件(.h,.cpp)拷到当前目录下
5.选择菜单Project->Add to Project->Files,然后将八个文件一同加入到当前的工程中
6.F7编译
7.F5运行即可呵呵,如果还有问题的话,发信给我:)
--------------------
May you succeed!
--------------------------
会出来一个界面你点“是”,结束后会出现一个窗体,点ok,就可以了
1.把你的
CustomerManager.h和CustomerManager.cpp合为一个文件
ProductManager.h 和ProductManager.h合为一个文件
2.在CustomerManager.h中包括CustomerManger.cpp那个文件同相
3.对CustomerManger和ProductManger分别编译后得customermanger.lib,和produ ctmanger.lib在你的工程中加入这两个库
4.将功赎罪动态DLL动CustomerManager和ProductManger