Решено Мой "WorkoutGeneratorMain.cpp" был классифицирован IDE как заголовок C++. Я не уверен, почему это произошло, но я исправил это. Теперь я разберусь со всеми остальными ошибками.
Спасибо всем!
===================================================
Я получаю следующую ошибку при компиляции моей программы в Visual Studio 2010 Professional:
------ Начата сборка: Проект: WorkoutGenerator, Конфигурация: Отладка Win32 ------
Сборка начата 15.08.2012, 12:19:18.
InitializeBuildStatus:
Касается " Debug\WorkoutGenerator.unsuccessfulbuild".
ClCompile:
LiftClass.cpp
ManifestResourceCompile:
Все выходные данные обновлены.
MSVCRTD.lib(crtexe.obj): ошибка LNK2019: неразрешенный внешний символ main, указанный в функции __tmainCRTStartup
C:\Users\Shanalex\Documents\Programming\C++Programming\WorkoutGenerator\WorkoutGenerator\Debug\WorkoutGenerator.exe: фатальная ошибка LNK1120: 1 неразрешенные внешние факторы
В своих поисках я нашел несколько руководств по исправлению этого; однако почти все они предполагают, что файл представляет собой приложение Windows, настроенное на настройки консоли, или наоборот. Моя программа представляет собой консольное приложение, и все настройки кажутся правильными для консольного приложения win32. Кое-где есть ошибка связывания, но у меня, похоже, нет проблем с настройками моего проекта, которые есть у других.
Я новичок в многокомпонентных программах на С++ и VS2010. Я вполне мог совершить элементарную ошибку, но я не смог найти ее, сравнивая свой код с кодом различных руководств и книг.
У меня есть три файла кода, а именно:
LiftClass.h
//Lift Classes
//Defines the Lift Class
#ifndef LIFTCLASSHEADER_H_INCLUDED
#define LIFTCLASSHEADER_H_INCLUDED
#include <iostream>
#include <string>
#include <vector>
#include <random>
#include <ctime>
using namespace std;
class Lift
{
public:
string LName;
string LType;
string LBody;
vector<double> LLoadScale;
Lift(string Name, string Type, string Body,
double Pawn, double Bishop, double Knight, double Rook, double Royal);
};
Lift::Lift(string Name, string Type, string Body,
double Pawn, double Bishop, double Knight, double Rook, double Royal)
{
LName = Name,
LType = Type,
LBody = Body,
LLoadScale.push_back(Pawn),
LLoadScale.push_back(Bishop),
LLoadScale.push_back(Knight),
LLoadScale.push_back(Rook),
LLoadScale.push_back(Royal);
}
#endif
Затем у меня есть реализация .cpp класса lift и функция для их рандомизации.
LiftClass.cpp
//Exercise Randomizer using Lift Class
//Initializes Lifts for use in Workout Generator
//Version 2.0 will reference Database
#include "LiftClass.h"
Lift exerciseRandomizer() //Define database of exercise & randomly select one
{
vector<Lift> LiftDatabase;
Lift Clean("Clean", "Olympic", "Full", .33, .66, 1, 1.33, 1.66);
Lift Bench("Bench Press", "Heavy", "Upper", .33, .66, 1, 1.5, 2);
LiftDatabase.push_back(Clean);
LiftDatabase.push_back(Bench);
srand(static_cast<unsigned int>(time(0))); //Seed random number
unsigned randomNumber = rand(); //Generate Random Number
//Get random between 1 and total lift count
unsigned randomSelector = (randomNumber % LiftDatabase.size());
return LiftDatabase[randomSelector];
}
И, наконец, у меня есть моя основная функция WorkoutGeneratorMain.cpp.
WorkoutGeneratorMain.cpp
//Workout Generator
//Generates workouts based on goal and fitness level
#include "LiftClass.h"
int main()
{
exerciseRandomizer();
Lift LiftA = exerciseRandomizer();
cout << "\n\nYour first lift is: " << LiftA.LName << "\n\n Its lift type is: " << LiftA.LType << endl;
cout << "\n\nGood Luck!" << endl;
system("pause");
return 0;
}
Любые предложения приветствуются.
Спасибо,
-Алекс
using namespace std;
, особенно в файлах заголовков. - person juanchopanza   schedule 15.08.2012LiftClass.cpp
компилируется:ClCompile: LiftClass.cpp
. Но я не вижу такого же сообщения дляWorkoutGeneratorMain.cpp
. Вы уверены, что он включен в ваш проект? - person Lol4t0   schedule 15.08.2012