Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
#1

Как правильно инклюдить файлы исходных кодов? MSVS08 - C++

06.03.2013, 23:19. Просмотров 476. Ответов 6
Метки нет (Все метки)

Допустим мне нужно создать класс.
В Qt я делаю так: создаю файл class.h туда запихиваю описание класса и прототипы функций, а в файле class.cpp у меня прописано #include "class.h" и там описаны все нужные функции. Далее в файле main.cpp я делаю #include "class.cpp" и все работает прекрасно.

В Visual Studio 2008 Так не работает выдает ошибку error LNK2005: "public: __thiscall Payment::Payment(void)" (??0Payment@@QAE@XZ) already defined in Payment.obj etc
Где то почитал пишут что нужно в мейне инклюдить class.h, попробовал сделать так. Опять ошибко: error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

Так как же все таки правильно делать в VS2008?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 23:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно инклюдить файлы исходных кодов? MSVS08 (C++):

Обфускация компилируемых исходных кодов - C++
Хотелось бы поподробнее узнать по поводу обфускации компилируемых исходных кодов. Вот, например, есть обфускатор Stunnix C++, (да и не...

Как правильно инклудить файлы - C++
Приветики. С книге по C++, которую я читал, был дан логичный пример подключения файлов, то-бишь: somefile.h //объявления всякие ...

Из маленьких исходных текстов, большие выполняемые файлы - C++
Добрый день всем. Возник следующий вопрос. Для учебы делаю маленькие исходники, с маленькими функциями, например такие: #include...

Как правильно подключать заголовочные файлы? - C++
прошу более продвинутых прогеров чем я найти и/или сделать ту библиотеку которая включает функции ниже. iostream: cin cout ...

Как правильно расположить заголовочные файлы? - C++
Здравствуйте, проблема такая: Имею три класса #ifndef __ACCOUNT_H__ #define __ACCOUNT_H__ #include "Post.h" class...

Как правильно использовать заголовочные файлы при раздельной компиляции в MS Visual Studio? - C++
Если я использую функцию cout и cin в каждом модуле, мне нужно в каждом модуле прописывать : #include <iostream> using namespace std; ...

6
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.03.2013, 23:26 #2
у вас ошибки линкера. они возникают после компилятора. т.е. синтаксически ваша программа корректна.
error LNK2005: "public: __thiscall Payment::Payment(void)
эта связана с тем, что нет объектника, в котором была бы заимплеменчена эта функция.
а это в свою очередь означает, что этот файл не компилировался. а не компилировался он потому, что не
добавлен в проект. проверить это просто. берете спп файл в котором заимплеменчена эта функция и пишете
туда заведомо некомпилируемую хрень. и если файл не компилируется, то у вас снова будут ошибки линкера,
а не ошибки компиляции. файлы добавляются в дереве файлов. там все просто. гуглица это просто.

Вторая ошибка линкера связана с неверным типом проекта. там они всякие бывают, консольное приложение, win32 приложение, прочие типы в зависимости от понаставленных плагинов.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.03.2013, 04:23 #3
Цитата Сообщение от Hellko Посмотреть сообщение
Так как же все таки правильно делать в VS2008?
Не инклюдить .cpp файлы (первая ошибка из-за этого, class.cpp получился два раза включённым в проект). В main.cpp и в class.cpp инклюдить class.h.
0
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
07.03.2013, 15:57  [ТС] #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Не инклюдить .cpp файлы (первая ошибка из-за этого, class.cpp получился два раза включённым в проект). В main.cpp и в class.cpp инклюдить class.h.
т.е. я в Qt когда делаю так, я на самом деле делаю ошибку, но ему пофиг..? или это особенность MSVS
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.03.2013, 16:15 #5
Цитата Сообщение от Hellko Посмотреть сообщение
т.е. я в Qt когда делаю так, я на самом деле делаю ошибку, но ему пофиг..? или это особенность MSVS
Тут трудно сказать (не зная деталей) почему в Qt это проходит. Но, вообще, без особой надобности, так стараются не делать. Причина выше. Среда для Qt какая? Те же самые файлы включали в Qt, что и в MSVS?

Добавлено через 8 минут
Сейчас вспомнил, в каких случаях это проходит. Это если проект не создавать, тогда обрабатывается один файл с включениями. Но не во всех средах такое получается.
1
Kuzia domovenok
1949 / 1802 / 138
Регистрация: 25.03.2012
Сообщений: 6,244
Записей в блоге: 1
07.03.2013, 18:43 #6
Цитата Сообщение от Hellko Посмотреть сообщение
т.е. я в Qt когда делаю так, я на самом деле делаю ошибку, но ему пофиг..? или это особенность MSVS
это огромная ошибка. никогда так не делай ни в каких средах разработки. В языке С раздельная компиляция. Это значит, что срр файлы и не должны знать о существовании друг друга!
Проект собирается в экзешник уже после компиляции всех исходников
1
Hellko
6 / 6 / 1
Регистрация: 17.11.2012
Сообщений: 65
08.03.2013, 11:29  [ТС] #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это огромная ошибка. никогда так не делай ни в каких средах разработки. В языке С раздельная компиляция. Это значит, что срр файлы и не должны знать о существовании друг друга!
Проект собирается в экзешник уже после компиляции всех исходников
спасибо, не знал.
0
08.03.2013, 11:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2013, 11:29
Привет! Вот еще темы с ответами:

Компиляция исходных кодов C# - CMD/BAT
Всем привет. Нужно реализовать чтение исходных данных и запись в файл результатов программы using System; using...

использование исходных кодов C++ в С# - C#
Доброй ночи, форумчане! Есть несколько структур, глобальных переменных и пара классов, написанных и отлаженных на С++. Надо всё это...

Сборка php из исходных кодов - RedHat, Fedora Linux
Добрый день! Пытаюсь собрать php из исходников, для того, чтобы он корректно работал с SSL (по этой статье:...

Извлечение исходных кодов метода, методики самопознания - Ruby
Дамы и господа, помогите, пожалуйста. Есть некий модуль, в нем некий метод, задача - узнать что происходит в недрах метода и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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