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()
". У меня, очевидно, есть это, прямо там, но это все еще бросает мне ту же самую фатальную ошибку :(
Было бы здорово получить ответ о том, как это исправить. Может быть, у меня есть недостатки в процессе установки или что-то в этом роде.
Ответы
Ответ 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++.