Я пишу код для класса, который я беру. Я не могу опубликовать весь свой код без обнуления моего балла за проект, но вот сокращенный код для моего драйвера:
#pragma once
#include <iostream>
#include <fstream>
#include <string>
#include "Stack.h"
using namespace std;
namespace jack
{
int high(char a)
{
// My Code
};
bool isSameOrHigher(char top, char cur)
{
// My Code
};
int main()
{
// My Code
};
};
По какой-то причине, что я не могу понять, когда я компилирую этот код, я получаю следующую ошибку:
ССЫЛКА: фатальная ошибка LNK1561: должна быть определена точка входа
Теперь, насколько я знаю, эта ошибка должна возникать только в том случае, если у меня нет основной функции, которую, как вы можете видеть, я на самом деле имею. Я попытался скопировать код из этого файла в другой проект, я попытался разделить свою основную функцию в другой файл cpp сам по себе (что вызвало больше ошибок и не исправило ошибку точки входа), и я попытался повторно -установка Visual C ++ Express и запуск с нуля. Мой учитель и я проверили весь код в этом файле перед main () (и весь код в файле Stack.h, который я написал и включил), и нет никаких пропущенных скобок, точек с запятой или любой другой пунктуации. Я не знаю, что еще попробовать. Мысли?
Вы должны двигаться main
вне любого пространства имен.
Для тех, кто заботится о том, что конкретно говорит стандарт (§3.6.1 / 1):
Программа должна содержать Глобальный функция называется
main
, который является назначенным началом программы.
Редактировать: для тех, кто также хочет последнее слово о том, что означает «глобальный» (§3.3.5 / 3 в C ++ 03, §3.3.6 / 3 с почти идентичной формулировкой в C ++ 11):
Самая внешняя декларативная область единицы перевода также является пространством имен, называемым глобальное пространство имен. Имя, объявленное в глобальном пространстве имен, имеет глобальная область имен (также называемый глобальный охват). […] Имена с глобальной областью пространства имен называются Глобальный.
Примете ваше main
вне пространства имен
Переместить main
функция вне пространства имен.
Примете ваше main
функция из пространства имен. Технически ваш main
на самом деле jack::main
пока он находится внутри пространства имен.
Вы должны определить main()
только в global namespace
, а не внутри любого другого namespace
s.