неопределенная ссылка на WinMain@16 (codeblocks)
когда я компилирую свой secrypt.программа cpp, мой компилятор показывает ошибку"undefined reference to WinMain@16
".
мой код выглядит следующим образом
secrypt.h:
#ifndef SECRYPT_H
#define SECRYPT_H
void jRegister();
#endif
secrypt.cpp:
#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
#include "secrypt.h"
using namespace std;
void jRegister()
{
ofstream outRegister( "useraccount.dat", ios::out );
if ( !outRegister ) {
cerr << "File could not be opened" << endl;
exit( 1 );}
string a,b,c,d;
cout<<"enter your username :";
cin>>a;
cout<<"enter your password :";
cin>>b;
outRegister<<a<<' '<<b<<endl;
cout<<"your account has been created";
}
суд.cpp
#include<iostream>
#include "secrypt.h"
using namespace std;
int main()
{
void jRegister();
return 0;
}
вот изображение моей ошибки: errorimage
когда я составляю пробную версию.программа cpp компилирует и открывает консоль, но не вызывает функцию. Вот изображение экрана консоли trial.программа СРР . экран o / p Кто-нибудь может помочь мне решить эту проблему?
6 ответов
когда нет проекта, Code:: Blocks только компилирует и связывает текущий файл. Этот файл, с вашей фотографии,secrypt.cpp
, который не имеет основной функции. Чтобы скомпилировать и связать оба исходных файла, вам нужно будет сделать это вручную или добавить их в один проект.
вопреки тому, что говорят другие, используя подсистему Windows с main
все равно будет работать, но окна консоли не будет.
ваша другая попытка, компиляция и связывание только trial.cpp
, не ссылки secrypt.cpp
. Обычно это приводит к неопределенной ссылке на jRegister()
, но вы объявили функцию внутри main
вместо вызова. Изменить main
в:
int main()
{
jRegister();
return 0;
}
хорошо, я знаю, что этот ответ не является подходом опытного программиста и старого ИТ-консультанта , но он работал для меня .
ответ: "попробуйте включить и выключить его". перезапуска CodeBlocks и он работает хорошо напоминает мне комедийное шоу 2006 года IT Crowd .
Мне было интересно настроить графику для блоков кода, когда я столкнулся с этой ошибкой: (мне потребовалось 2 часа, чтобы решить ее)
Я думаю, вам нужно немного удачи с этим. В моем случае я просто изменил порядок содержимого в меню настроек - >компилятор и отладчик - >глобальные настройки компилятора - >настройки компоновщика - >другие параметры компоновщика: Рабочая последовательность: - lmingw32 - lSDL - lSDLmain
вы должны создать новый проект в Code:: Blocks и убедиться, что это "консольное приложение".
добавить .cpp файлы в проект, так что они все скомпилированы и связаны вместе.
вам нужно открыть файл проекта вашей программы, и он должен появиться на панели управления.
щелкните правой кнопкой мыши файл проекта, затем выберите Добавить файл. Вы должны добавить исходный код 3 (secrypt.h, secrypt.cpp и суд.cpp)
компилируйте и наслаждайтесь. Хоуп, Я могу тебе помочь.
У меня была такая же проблема с ошибкой, используя блоки кода rev 13.12. Я могу ошибаться здесь, так как я меньше, чем новичок:)
моя проблема заключалась в том, что я случайно написал "M" в Main() вместо всех строчных = main() - после исправления это сработало!!!
Я заметил, что у вас есть" int main () "вместо"main ()". В этом проблема, или так и должно быть?
надеюсь, я смогу помочь...