Ошибка 1 error lnk1561 точка входа должна быть определена

Что означает эта ошибка?

1> LINK : не найден или не выполнена сборка c:userscsdocumentsvisual studio 2010ProjectsролролглDebugVwe.exe при последней инкрементной компоновке; выполняется полная компоновка
1>LINK : fatal error LNK1561: точка входа должна быть определена

Nicolas Chabanovsky's user avatar

задан 22 фев 2012 в 17:29

RconPro's user avatar

Возможно вы создали пустой проект, пользуясь мастером Visual Studio, и пытаетесь его скомпилировать и слинковать. А так как он не имеет метода main (для консольного приложения) и т.п., то сборщик и сообщает об ошибке.

Либо используйте другой шаблон проекта, либо добавьте в проект файл содержащий точку входа.

ответ дан 22 фев 2012 в 17:46

stanislav's user avatar

stanislavstanislav

34.3k25 золотых знаков95 серебряных знаков213 бронзовых знаков

Правая кнопка мыши на Проект -> Свойства -> Компоновщик -> Все параметры -> Подсистема.
Выберите — «Консоль».
Также не забудьте о main();

Denis's user avatar

Denis

8,86010 золотых знаков30 серебряных знаков55 бронзовых знаков

ответ дан 12 мая 2016 в 12:39

Little Fox's user avatar

Little FoxLittle Fox

5944 серебряных знака18 бронзовых знаков

2

Если у тебя консольное приложение, надо определить main, а если оконное приложение Windows, то WinMain.

ответ дан 23 фев 2012 в 7:42

devoln's user avatar

devolndevoln

5,40120 серебряных знаков32 бронзовых знака

Что означает эта ошибка?

1> LINK : не найден или не выполнена сборка c:userscsdocumentsvisual studio 2010ProjectsролролглDebugVwe.exe при последней инкрементной компоновке; выполняется полная компоновка
1>LINK : fatal error LNK1561: точка входа должна быть определена

Nicolas Chabanovsky's user avatar

задан 22 фев 2012 в 17:29

RconPro's user avatar

Возможно вы создали пустой проект, пользуясь мастером Visual Studio, и пытаетесь его скомпилировать и слинковать. А так как он не имеет метода main (для консольного приложения) и т.п., то сборщик и сообщает об ошибке.

Либо используйте другой шаблон проекта, либо добавьте в проект файл содержащий точку входа.

ответ дан 22 фев 2012 в 17:46

stanislav's user avatar

stanislavstanislav

34.3k25 золотых знаков95 серебряных знаков213 бронзовых знаков

Правая кнопка мыши на Проект -> Свойства -> Компоновщик -> Все параметры -> Подсистема.
Выберите — «Консоль».
Также не забудьте о main();

Denis's user avatar

Denis

8,86010 золотых знаков30 серебряных знаков55 бронзовых знаков

ответ дан 12 мая 2016 в 12:39

Little Fox's user avatar

Little FoxLittle Fox

5944 серебряных знака18 бронзовых знаков

2

Если у тебя консольное приложение, надо определить main, а если оконное приложение Windows, то WinMain.

ответ дан 23 фев 2012 в 7:42

devoln's user avatar

devolndevoln

5,40120 серебряных знаков32 бронзовых знака

I am working with Visual Studio 2012.

My Solution has 3 projects

projectA

projectB

projectC

and the Hierarchy is like

projectC depends on projectB which in turn depend on projectA. There is a main function in projectC and no main in projectB and projectA.
The errors that i am getting are:

error LNK1561: entry point must be defined      projectA
error LNK1561: entry point must be defined      projectB

I have tried changing in the
Configuration Properties -> Linker -> System -> SubSystem to Console (/SUBSYSTEM:CONSOLE) But the problem still persists

Help me out of this.

asked Jun 21, 2013 at 5:31

Euler's user avatar

EulerEuler

6523 gold badges11 silver badges24 bronze badges

4

It seems, that you misunderstand the term «module». There is no such C++ project in Visual Studio; C++ projects may be divided into three categories:

  • Programs — compilation produces an exe file, which may be executed;
  • Static libraries — compilation produces a lib file, which may be included in another project and are linked during the compilation;
  • Dynamic libraries — compilation produces a dll file, which may be attached to your program at run-time and provide additional functionality.

From your description, you want the projectB and projectC to be a static libraries, but instead you created them as executable files. Run the new project wizard again and choose «static library» instead of «Windows application».

You can read more about static libraries in the MSDN library.

If static libraries are too heavyweight for your application, you may simply include projectB and projectC files in your project (optionally take care of namespaces not to confuse the names of classes). It all depends on how much functionality you plan to implement in these «modules».

Gilles 'SO- stop being evil''s user avatar

answered Jun 21, 2013 at 6:23

Spook's user avatar

SpookSpook

25.1k18 gold badges89 silver badges165 bronze badges

1

set Properties -> Linker -> System -> SubSystem to «Windows (/SUBSYSTEM:WINDOWS)»

answered Oct 6, 2013 at 17:49

user2852297's user avatar

What’s happening possibly, what was happening with me, is that when you switch your properties of your project to .dll from .exe, if you switch from debug to release or from x86 to x64, each time you do that it’s switching you back to .exe. Each configuration has it’s own properties.

So, go to Properties > Configuration Type > .dll

If indeed you want to make a .dll.

answered Feb 8, 2019 at 19:40

Mark Aven's user avatar

Mark AvenMark Aven

3153 silver badges8 bronze badges

1

I’m going to guess you’re using Windows for creating this project, for me, if I usually use SDL I get this error, all you have to do is type in this #include <Windows.h> that should fix it, if not then I’m not to sure how to fix that.

answered Aug 10, 2016 at 0:11

One Ace's user avatar

1

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

29 SortOf [2013-06-12 19:12:00]

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

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

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

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

c++ visual-c++ visual-studio

10 ответов

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

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

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

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

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

8 ash [2013-06-12 19:44:00]

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

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

Решение, которое сработало (до редактирования область была пуста):

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

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

0 sdff [2015-10-29 04:15:00]

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

0 lizard [2018-07-31 20:44:00]

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

0 Brackets [2016-12-30 20:51:00]

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

0 dude [2017-10-09 18:51:00]

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

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

Я создал пустой проект Visual C ++ с Visual Studio 2017 15.3.4 Редакция сообщества, выбрав Visual C ++ -> Общие -> Пустой проект из мастера. Я хотел создать библиотеку C ++ (статическую или динамическую).

Но когда я компилирую это, я получаю это сообщение:

ССЫЛКА: фатальная ошибка LNK1561: должна быть определена точка входа

Я щелкнул правой кнопкой мыши на Project, выберите Properties, Linker и Advanced, и опция Entry Point пуста.

Что я должен положить туда?

Есть ли еще лучший вариант для создания библиотеки C ++?

2

Решение

Библиотека не имеет точки входа, поэтому вы можете сказать, что проект настроен неправильно. Конкретный параметр, который вы забыли изменить, — это «Проект»> «Свойства»> «Основные»> «Тип конфигурации». Выберите «Статическая библиотека (.lib)».

Это пошло не так, потому что вы начали с нуля, правильная настройка десятков настроек никогда не была проблемой. Для VS2017 RTM вы предпочитаете начинать с Win32> Win32 Project> Next> «Статическая библиотека». Возможно, это изменилось, я не обновлял его, потому что видел слишком много неприятных отчетов об ошибках для 15.3.x

1

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

Чтобы создать статическую библиотеку в VS 2017 версии 15.3.4, сначала выберите шаблон «Мастер рабочего стола Windows»,

введите описание изображения здесь

В появившемся диалоговом окне мастера измените тип приложения на статическую библиотеку:

введите описание изображения здесь

Вы также можете отключить предварительно скомпилированные заголовки, поскольку в Visual C ++ это дает нестандартное поведение препроцессора.

2

Я впервые установил 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() функция, чтобы работать». Очевидно, она у меня есть, но она все равно выдает ту же фатальную ошибку :(

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

Александр Зубов

0 / 0 / 0

Регистрация: 06.02.2013

Сообщений: 4

1

06.02.2013, 19:30. Показов 7358. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

вот текст программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "math.h"
#include "stdio.h"
 
using namespace std;
 
double F(double x)
{
    return pow(x, 3) - x + exp(-x);
}
void fibonachi(double a, double b, double e)
{
    FILE *fibon;
    fibon=fopen("C://Информатика//Fibonachi.txt", "w");
    fprintf(fibon, "Итер|  (a+b)/2   |  F((a+b)/2) |     a       |     b     |n");
    fprintf(fibon, "----------------------------------------------------------n");
 
    int fib[80]; //задаем массив с числами Фибоначчи
 
    fib[0]=1; fib[1]=1; //в первые два элемента массива записываем 1, так начинается последовательность Фибоначчи
    int i=1;
     while ( (b-a)/e >fib[i])
       {
        i++; fib[i]=fib[i-2] + fib[i-1];
       }
    double l=a+fib[i-2]*(b-a) / fib[i], m=a+fib[i-1]*(b-a)/fib[i], d1=F(l), d2=F(m);
    for (int k=i-1; k>=2; k--)
    {
      fprintf(fibon, "%3d | %6.6f  |  %6.6f  | [%6.6f, | %6.6f]|n",i-k,(a+b)/2, F((a+b)/2), a, b);
      if (d1<d2)
        {
         b=m; m=l; d2=F(l);
         l=a+fib[k-2]*(b-a)/fib[k];
         d1=F(l);
        }
       else
        {
         a=l; l=m; d1=d2;
         m=a+fib[k-1]*(b-a)/fib[k];
         d2=F(m);
        }
    }
    fprintf(fibon,"Итераций:%3dnКонечные значения: x=%6.6f  y=%6.6f",i-2, (a+b)/2, F((a+b)/2));
}

и вот вывод:

Код

1>------ Построение начато: проект: Fibbo, Конфигурация: Debug Win32 ------
1>  Fibbo.cpp
1>Fibbo.cpp(17): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestdio.h(234): см. объявление "fopen"
1>Fibbo.cpp(46): warning C4129: :
1>LINK : fatal error LNK1561: точка входа должна быть определена
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

как понимаю, ошибка:1>LINK : fatal error LNK1561: точка входа должна быть определена

помогите пожалуйста, как исправить?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

06.02.2013, 19:30

6

погромист

415 / 251 / 30

Регистрация: 27.08.2012

Сообщений: 550

06.02.2013, 19:44

2

Где main()?



0



0 / 0 / 0

Регистрация: 06.02.2013

Сообщений: 4

06.02.2013, 19:45

 [ТС]

3

Цитата
Сообщение от Александр Зубов
Посмотреть сообщение

void fibonachi(double a, double b, double e)

я же вот как ввожу.
просто не понимаю, куда его тут вставить?!



0



coloc

погромист

415 / 251 / 30

Регистрация: 27.08.2012

Сообщений: 550

06.02.2013, 19:47

4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "iostream"
#include "conio.h"
#include "math.h"
#include "stdio.h"
 
using namespace std;
 
double F(double x)
{
return pow(x, 3) - x + exp(-x);
}
void fibonachi(double a, double b, double e)
{
FILE *fibon;
fibon=fopen("C://Èíôîðìàòèêà//Fibonachi.txt", "w");
fprintf(fibon, "Èòåð| (a+b)/2 | F((a+b)/2) | a | b |n");
fprintf(fibon, "----------------------------------------------------------n");
 
int fib[80]; //çàäàåì ìàññèâ ñ ÷èñëàìè Ôèáîíà÷÷è
 
fib[0]=1; fib[1]=1; //â ïåðâûå äâà ýëåìåíòà ìàññèâà çàïèñûâàåì 1, òàê íà÷èíàåòñÿ ïîñëåäîâàòåëüíîñòü Ôèáîíà÷÷è
int i=1;
while ( (b-a)/e >fib[i])
{
i++; fib[i]=fib[i-2] + fib[i-1];
}
double l=a+fib[i-2]*(b-a) / fib[i], m=a+fib[i-1]*(b-a)/fib[i], d1=F(l), d2=F(m);
for (int k=i-1; k>=2; k--)
{
fprintf(fibon, "%3d | %6.6f | %6.6f | [%6.6f, | %6.6f]|n",i-k,(a+b)/2, F((a+b)/2), a, b);
if (d1<d2)
{
b=m; m=l; d2=F(l);
l=a+fib[k-2]*(b-a)/fib[k];
d1=F(l);
}
else
{
a=l; l=m; d1=d2;
m=a+fib[k-1]*(b-a)/fib[k];
d2=F(m);
}
}
fprintf(fibon,"Èòåðàöèé:%3dnÊîíå÷íûå çíà÷åíèÿ: x=%6.6f y=%6.6f",i-2, (a+b)/2, F((a+b)/2));
}
 
int main(){
    
    fibonachi(13, 2, 3);
    return 0;
}

в мейн пишите функции



1



0 / 0 / 0

Регистрация: 06.02.2013

Сообщений: 4

06.02.2013, 19:51

 [ТС]

5

А вы запустите программу.
Там получается число итераций -1
что-то не то..

Добавлено через 50 секунд
и почему такие числа??

Цитата
Сообщение от coloc
Посмотреть сообщение

fibonachi(13, 2, 3);



0



погромист

415 / 251 / 30

Регистрация: 27.08.2012

Сообщений: 550

06.02.2013, 19:54

6

Ну уже сами разбирайтесь что не то. Вы написали какая у вас ошибка — я ответил. Или вы скопипастили пример и даже не знаете какие параметры этой функции передать?

Добавлено через 58 секунд

Цитата
Сообщение от Александр Зубов
Посмотреть сообщение

и почему такие числа??

Метод тыка



0



0 / 0 / 0

Регистрация: 06.02.2013

Сообщений: 4

06.02.2013, 19:55

 [ТС]

7

Цитата
Сообщение от coloc
Посмотреть сообщение

Или вы скопипастили пример и даже не знаете какие параметры этой функции передать?

нет, сам писал
спасибо за main



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

06.02.2013, 19:55

7

Возможно, вам также будет интересно:

  • Ошибка 1 10087 на телефоне самсунг
  • Ошибка 0чу8000015 при восстановлении iphone
  • Ошибка 0чс0000906 при запуске call of duty
  • Ошибка 0чс0000142 что это как исправить windows 10
  • Ошибка 0ч80240017 при установке microsoft visual c

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии