Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
#1

Ошибка при создании заголовочного файла - C++

15.04.2013, 15:00. Просмотров 628. Ответов 5
Метки нет (Все метки)

Добрый день. Недавно решил создать свой заголовочный файл, однако при компилятор выдает мне ошибку undefined symbol _main in module c0.ASM . при добавлении функции маин, компилируется отлично, и создается файл header.h, но насколько я знаю, в заголовочном файле функция маин должна отсутствовать, помогите решить данную проблему. Заранее спасибо.
p.s. компилятор turbo c++ 1.0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 15:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при создании заголовочного файла (C++):

Ошибка при подключении заголовочного файла - C++
Есть некий класс вот его заголовочный файл #include <string> class OSY { public: OSY(); void get(std::string &x1, int...

Ошибка при подключении заголовочного файла: "error LNK2019: unresolved external symbol" - C++
Добрый день. Я что то не могу разобраться как работают эти заголовки на с++(вижуал студия). Создал Test.h В нём написал ...

ofstream / ошибка при создании файла - C++
ofstream f( L"C:\\Users\\Джон Грегорович\\Documents\\RAD Studio\\Projects\\.\\Win32\\Debug\\BackUp\\Wstud.txt"); создает файл, но за...

Ошибка при создании exe-файла - C++
В Micrisoft visual studio 6.0 при линковке проекта на С++ выходит одна ошибка: LINK : fatal error LNK1104: cannot open file...

OpenCv 2 4 7 Ошибка при создании файла vec - C++
Что обозначает эта ошибка и как её исправить ?

Куча ошибок при подключении заголовочного файла - C++
Вот только установил новую VS, создал проект, написал лишь #include <iostream> и тут... вылазит куча ошибок В чем проблема?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
abit
262 / 261 / 33
Регистрация: 03.02.2013
Сообщений: 722
15.04.2013, 15:06 #2
p.s. компилятор turbo c++ 1.0
lolwhat???
где вы его откопали?
посвежее нельзя взять?

в заголовочном файле функция маин должна отсутствовать
ничего она не должна никому

Недавно решил создать свой заголовочный файл, однако при компилятор выдает мне ошибку
h-файл в такой постановке вопроса вы не откомилируете

создайте cpp, там сделайте инклуд вашего h-файла и реализацию main и уже cpp компилируйте
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
15.04.2013, 15:22  [ТС] #3
Цитата Сообщение от abit Посмотреть сообщение
lolwhat???
где вы его откопали?
посвежее нельзя взять?
случился бзик и начал работать под досом


Цитата Сообщение от abit Посмотреть сообщение
h-файл в такой постановке вопроса вы не откомилируете
создайте cpp, там сделайте инклуд вашего h-файла и реализацию main и уже cpp компилируйте
так и делал, сначала все в cpp файле, затем погуглил, добавил #ifnde #define #endif потом начал компилировать.


Цитата Сообщение от abit Посмотреть сообщение
ничего она не должна никому
так все же, в заголовочном файле функция main() может присутствовать? не будет возникать ошибок при подключении этого файла?
abit
262 / 261 / 33
Регистрация: 03.02.2013
Сообщений: 722
15.04.2013, 15:42 #4
так все же, в заголовочном файле функция main() может присутствовать? не будет возникать ошибок при подключении этого файла?
она просто должна быть в одном экземпляре в проекте... языки c/c++ устроены так, что перед компиляцией собирается так называемый "препроцессорный текст" (на моей старой работе его называли почему-то компиляционный лист) - суть его, что туда складываются все исходные файлы и h/hpp/c/cpp - всё равно... это одна из причин, почему нужны сторожевые механизмы IFNDED, одна из причин почему в C++ нет модулей, как в более современных языках и одна из причин почему всё так долго компилируется, особенно если есть шаблоны
и вот в этом "препроцессорном тексте" должна быть функция main() и должна быть в единственном числе

так и делал, сначала все в cpp файле, затем погуглил, добавил #ifnde #define #endif потом начал компилировать.
куда вы что добавили... я мало понимаю

дайте в упрощённом виде cpp и h-файл...

я вам приведу пример как это должно быть:

myprog.cpp:
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include "myh.h"
 
int main()
{
   std::cout << mys;
   return 0;
}
myh.h:
C++
1
2
3
4
5
6
#ifndef GUARD_myh_h
#define GUARD_myh_h
 
const char * mys = "hello world";
 
#endif
но я не уверен, что во времена Turbo C++ 1.0 был #include <iostream> может там #include <iostream.h>, а может и вообще STL как класс отсутствовал, я в те времена занимался ассемблером и паскалем

Добавлено через 1 минуту
в моём примере компилировать надо исключительно myprog.cpp, не h-файл
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
15.04.2013, 17:27  [ТС] #5
Цитата Сообщение от abit Посмотреть сообщение
я вам приведу пример как это должно быть:
в общем виде все также, кроме упомянутой функции main()
Цитата Сообщение от abit Посмотреть сообщение
она просто должна быть в одном экземпляре в проекте... языки c/c++ устроены так, что перед компиляцией собирается так называемый "препроцессорный текст" (на моей старой работе его называли почему-то компиляционный лист) - суть его, что туда складываются все исходные файлы и h/hpp/c/cpp - всё равно... это одна из причин, почему нужны сторожевые механизмы IFNDED, одна из причин почему в C++ нет модулей, как в более современных языках и одна из причин почему всё так долго компилируется, особенно если есть шаблоны
и вот в этом "препроцессорном тексте" должна быть функция main() и должна быть в единственном числе
если я правильно вас понял, то все должно получится, если я просто создам проект, но как быть без него, имеется cpp файл с написанными функциями и т. д. необходимо его изменить на file.h и единственная проблема это то, что компилятор требует функцию main, возможно я не совсем вас понял, но есть ли способ создать этот заголовочный файл, без создания проекта(я создавал его без создания проекта, но еще раз повторюсь, только в присутствии функции main())?
abit
262 / 261 / 33
Регистрация: 03.02.2013
Сообщений: 722
15.04.2013, 17:52 #6
вы не можете откомпилировать отдельно какой-либо h-файл... я об этом говорил - в С/C++ нет модулей, он каждый раз собирает весь проект с нуля

единственное что можно сделать - это создать объектный-файл, либо lib/dll/so, который потом подключить к проекту на стадии линковки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 17:52
Привет! Вот еще темы с ответами:

При подключении заголовочного файла появляются ошибки переопределения функций - C++
Знаю, что эта тема размусолена, но попрошу немного добра. Пишу отдельный модуль с процедурами обработки двусвязного списка. При...

Кто подключает и какие библиотеки при включении в проект заголовочного файла Windows.h к примеру? - C++
В заголовочных файлах ведь только описания, константы, макросы, а откуда тогда берется сам код описанных в Windows.h ф-ий? Это...

Связь заголовочного файла и файла с описанием класса. - C++
Всем привет! На картинке я выложил код из одной книжки, у меня возникли некоторые вопросы: - Должен ли компилироваться файл TIME1.CPP? ...

Включние заголовочного файла name.h - C++
Доброго времени суток. Суть проблемы такова: допустим есть папка, в которой куча хедеров (.h) + в ней еще папки в которых еще куча хедеров...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.04.2013, 17:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru