C ++ неопределенная ссылка на WinMain @ 16 (Code :: Blocks)

Я изучаю C ++ с Code :: Blocks, и каждый раз, когда я пытаюсь создать новый класс, я получаю сообщение об ошибке:

undefined reference to `[email protected]'

Вот'это код, который ямы использовали:

Основной класс

#include "Lime.h"
#include 
using namespace std;
int main()
{
    Lime lime;
    return 0;
}

Класс извести (.ccp):

#include "Lime.h"
#include 
using namespace std;
Lime::Lime()
{
    cout
 Relopz14 янв. 2014 г., 04:06
все эти файлы уже сделаны в одном проекте, проблема была решена только путем перезапуска CodeBlocks, вы знаете, может быть, почему?
 enhzflep14 янв. 2014 г., 05:39
Проще говоря, вам нужно было создатьКонсольное приложение », а не 'Win32 GUI Project '
 drescherjm14 янв. 2014 г., 03:46
Я не знаю кодовые блоки, но вам нужно включить подсистему CONSOLE
 chris14 янв. 2014 г., 03:46
@drescherjm, нет, это не имеет никакого отношения к проблеме. Увидетьэтот ответ
 Nesa15 мар. 2019 г., 23:21
Я использовал g ++, а не Codeblocks, но поместив функцию main в конец файла main.cpp (как последнюю объявленную функцию), он заработал.
 chris14 янв. 2014 г., 03:45
Вы должны либо произвольно связать два объектных файла, созданных при компиляции двух .cpps, либо поместить файлы в проект.
 drescherjm14 янв. 2014 г., 04:04
Благодарю. Я так привык к поведению Visual Studio.

Ответы на вопрос(10)

Компилятор, нажмите вкладку Параметры сборки, установите флажок

Явно добавить текущий компилируемый файлкаталог s к поиску компилятора dirs

я сделал это и теперь я отлично работаю

что вам нужно сделать, это выбрать " открыть существующий проект " который появляется на вкладке «Пуск», как только вы открываете блоки кода, а затем выбираете (имя вашего проекта) файл .cbp ... программа откроет ваши проекты, а также файлы с именами классов .h и .cpp ... вы создаете и запустить ... и вуаля ваш код будет работать нормально ..

 asgs07 нояб. 2015 г., 16:01
к сожалению, это было не так просто.

открыв диалоговое окно настроек компилятора и просто нажав кнопку ОК. Ничего не изменилось. И это действительно работает!

Но если вы снова добавите новый класс, эта проблема повторяется. Поэтому просто открывайте / закрывайте диалог настроек каждый раз, когда создаете новый класс.

 Sergey Dolgopolov03 мар. 2014 г., 19:36
Только что попробовал совет стоящий рядом с моим "Попробуйте это: Настройки->Компилятор, нажмите вкладку Параметры сборки, установите флажок " - этот флаг необходимо установить

SettingsCompiler, нажмите на вкладкуBuild optionsустановите флажок

Явно добавить текущий компилируемый файлкаталог s к поиску компилятора dirs

Постскриптум

В следующий раз, когда вы создадите новый класс, вFile policy раздел, убедитесь, что вы выбрали флажки

Добавить путь к проекту

Заголовок и файл реализации должны находиться в одной папке

Тем не менее, сделатьНЕ Выбрать

Использовать относительный путь

 FreddieGericke03 апр. 2014 г., 21:51
У меня была та же проблема, что и у OP, и это исправлено, спасибо.
 Mina Michael11 янв. 2016 г., 13:51
наконец прямой ответ без головной боли !!
 DorinPopescu30 окт. 2016 г., 10:55
Наконец хороший и короткий ответ!

тыперестройка приложения для Windows, а не консольного приложения. Поэтому вам нуженWinMain функционировать как точка входа в программу, а не .I 'main

Я не очень знаком с CodeBlocks, но где-то в настройках проекта будет параметр, позволяющий вам указать подсистему, в которой работает ваша программа.наверное говорятОкна»и один из вариантов должен бытьПриставка", так что вы можете изменить его на это, если вы действительно хотите консольное приложение. Судя по тому, что вы используетеcout Я подозреваю, что консольное приложение - это то, что вы хотите. Если это так, вы можете уйтиmain как ваша точка входа.

Вы также можете выбрать консольное приложение при создании нового проекта.Этот скриншот и текст должен помочь.

ПРИМЕЧАНИЕ: ямы только что проверили еще, и вProject/target option Вы можете пойти в "Построить цели " вкладка и увидеть подсистему выперестройка для. Это'называется "Тип" на вкладке, и один из вариантов выпадающего будет "Консольное приложение ".I

 Atom01 февр. 2014 г., 19:24
сделал выбиратьConsole Application и в целевых вариантах это говорит.Console Applications

"Project" --> "Build Options . . ." в строке меню

"Linker Settings" табуляция

В"Link libraries" панель, нажмите"Add"

Запишите это в поле ввода:mingw32;libSDL.a;libSDLmain.a

"Search directories" --> "Linker" табуляция

Добавьте туда свои библиотеки MinGW! Удачи !!

 или неопределенная ссылка на 'Класс-имя :: имя-класса ()» Ошибка в кодовых блоках

У меня была такая же проблема. На самом деле это было очень легко исправить. НаМеню бар перейти к

проект -> вариант сборки Поставьте галочку наПусть g ++ будет соответствовать стандарту языка C ++ 11 ISO C ++ [-std = c ++ 11]

затем нажмите ОК и соберите и запустите ваш проект[F9].Нажмите здесь, чтобы увидеть снимок экрана. Исправление отдельных блоков классов

точный та же проблема работы сточный те же учебники.

Как это решить? Я обнаружил, что перезапуск CodeBlocks избавляет от этой ошибки. Это не имеет никакого отношения к тому, как вы создали файлы или какой-либо синтаксис. Перезапуск делает свое дело.

Почему это происходит? Если бы мне пришлось сделать дикое предположение, я бы подумал, что CodeBlocks действительно создает файлы header / cpp, однако он не связывает их с вашим проектом надлежащим образом, что делает их пригодными для использования (хотя он и просит вас связать их с проект после их создания). Это предположение.

Я понимаю, что некоторые люди прокомментировали это, сказав, что высоздает консольное приложение Windows вместо консольного приложения, но это не так. Я тоже создавал простое консольное приложение, как объясняет Баки в видео.

 user330804304 авг. 2014 г., 23:36
Рад, что могу помочь!
 Jong Bor Lee03 июл. 2014 г., 20:47
Это был правильный ответ для меня. CodeBlocks начал жаловаться на WinMain совершенно неожиданно для проекта, который до сих пор компилировался нормально. Перезапуск сделал свое дело.
 SeasonalShot10 июн. 2015 г., 23:56
Спасибо, это сработало.
 The Duke Of Marshall שלום04 авг. 2014 г., 23:23
Это так круто. Я делал ту же самую вещь, проходил ту же самую учебную программу, использовал ту же самую программу и имел точно такую же проблему, над которой работало то же самое решение. Спасибо!

потому чтоmain.cpp» не был включен в проект. Если вы видите эту ошибку еще раз, просто убедитесь, что все файлы включены в ваш проект.

мое решение - создать проект, если у вас есть много файлов, которые включают заголовочный файл. Таким образом, когда вы коде "#include"Burrito.h» редактор будет искать файл заголовка в вашем проекте. Особенно для редактора Dev-cpp.

Ваш ответ на вопрос