функция main () не распознана

Я пишу код для класса, который я беру. Я не могу опубликовать весь свой код без обнуления моего балла за проект, но вот сокращенный код для моего драйвера:

    #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, который я написал и включил), и нет никаких пропущенных скобок, точек с запятой или любой другой пунктуации. Я не знаю, что еще попробовать. Мысли?

0

Решение

Вы должны двигаться main вне любого пространства имен.

Для тех, кто заботится о том, что конкретно говорит стандарт (§3.6.1 / 1):

Программа должна содержать Глобальный функция называется main, который является назначенным началом программы.

Редактировать: для тех, кто также хочет последнее слово о том, что означает «глобальный» (§3.3.5 / 3 в C ++ 03, §3.3.6 / 3 с почти идентичной формулировкой в ​​C ++ 11):

Самая внешняя декларативная область единицы перевода также является пространством имен, называемым глобальное пространство имен. Имя, объявленное в глобальном пространстве имен, имеет глобальная область имен (также называемый глобальный охват). […] Имена с глобальной областью пространства имен называются Глобальный.

7

Другие решения

Примете ваше main вне пространства имен

5

Переместить main функция вне пространства имен.

3

Примете ваше main функция из пространства имен. Технически ваш main на самом деле jack::main пока он находится внутри пространства имен.

3

Вы должны определить main() только в global namespace, а не внутри любого другого namespaces.

2
По вопросам рекламы [email protected]