Подтвердить что ты не робот

LINK: фатальная ошибка LNK1561: точка входа должна быть определена ERROR IN VС++

Я впервые установил MS VS VC++, чтобы начать программировать OpenGL с библиотекой GLFW. Я следую инструкциям по его установке на http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.html Затем я написал эту простую программу, просто чтобы протестировать ее, который работал на Eclipse:

#include <stdlib.h>
#include <GL/glfw.h>

using namespace std;

int main()
{
    int running = GL_TRUE;
    if (!glfwInit()) {
        exit(EXIT_FAILURE);
    }

    if (!glfwOpenWindow(300, 300, 0, 0, 0, 0, 0, 0, GLFW_WINDOW)) {
        glfwTerminate();
        exit(EXIT_FAILURE);
    }

    while (running) {
        // glClear( GL_COLOR_BUFFER_BIT );
        glfwSwapBuffers();
        running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED);
    }

    glfwTerminate();
    exit(EXIT_SUCCESS);
    return 0;
}

Но потом я получил эту ужасную ошибку:

------ Build started: Project: first1, Configuration: Debug Win32 ------
   LINK : fatal error LNK1561: entry point must be defined
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Я знаю, что я искал в Интернете, и единственное решение, которое я нашел, было "Для работы требуется функция main() ". У меня, очевидно, есть это, прямо там, но это все еще бросает мне ту же самую фатальную ошибку :(

Было бы здорово получить ответ о том, как это исправить. Может быть, у меня есть недостатки в процессе установки или что-то в этом роде.

4b9b3361

Ответ 1

Это проект консоли или проект Windows? Я спрашиваю, потому что для Win32 и аналогичного проекта точка входа WinMain().

  • Щелкните правой кнопкой мыши проект (а не решение) с левой стороны.
  • Затем нажмите "Свойства" → "Свойства конфигурации" → "Линкер" → "Система"

Если он говорит Subsystem Windows, ваша точка входа должна быть WinMain(), т.е.

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
{
   your code here ...
}

Кроме того, говоря о комментариях. Это компиляция (или, точнее, ссылка), а не ошибка времени выполнения. Когда вы начинаете отлаживать, компилятор должен сделать полную программу (а не только для компиляции вашего модуля), и именно тогда возникает ошибка.

Он даже не доходит до того, что загружается и выполняется.

Ответ 2

Невозможно найти точку входа для вашей программы, в данном случае main(). Вероятно, ваши настройки компоновщика неверны.

Смотрите этот пост здесь

Ответ 3

измените его на Консоль (/SUBSYSTEM: CONSOLE), она будет работать

Ответ 4

В моем случае программа работала нормально, но через день я просто столкнулся с этой проблемой, ничего не делая...

Решением было вручную добавить "Main" в качестве точки входа (перед редактированием область была пуста):

enter image description here

Ответ 5

Вы можете получить эту ошибку, если вы определяете проект как .exe, но хотите создать .lib или .dll

Ответ 6

У меня это произошло на VS после того, как я изменил окончание строки файла. Изменение их обратно в Windows CR LF исправило проблему.

Ответ 7

В Visual Studio: Свойства -> Расширенные -> Точка входа -> записать только имя функции, с которой программа должна начинаться, с учетом регистра, без каких-либо скобок и аргументов командной строки.

Ответ 8

Если у кого-то возникли проблемы с этим, я сам получил один пустой .cpp файл в другом проекте даже (но в том же решении) и просто дал ему простой main с возвратом 0; и затем работал хорошо.

Ответ 9

Главное отсутствовало в конфигурации точки входа. enter image description here

Ответ 10

Я только что узнал, что в моем коде функция int main() не была включена, и это было: int choice() и еще одна, называемая int choice() внутри первой. Тогда проблем может быть 2: вы должны включить функцию int main(), или вы не можете иметь две переменные/функции или объявления (int, string, char, double, float, double float,...) в одной и той же функции, Я хочу сказать, что я просто думаю, потому что я просто пишу для развлечения и никогда не учился c++.