Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Рулезные Сишники - Помогите!

15K
16 января 2006 года
durokol
3 / / 16.01.2006
Жил был я... Не ведал С++...
Но тут установил Visual Studio 2003 и начал...
:P

КАК, ГДЕ, НАЙТИ Информацию и НАУЧИТЬСЯ писать код так, чтобы забыть о проблемах Мистера ЛИНКЕРА???


а именно:
- Как именно взаимодействует код в файлах *.cpp и *.h ??? Как именно происходит сборка этих файлов препроцессором и как правильно описывать интерфейс заголовочных (*.h) файлов, чтобы не было глюков при линке???
- Каким образом влияет (если вообще влияет) порядок подключения заголовочных (*.h) файлов. Если каждый из них содержит директиву #pragma once (или ту же защиту через #ifndef, #define, #endif). Возможна ли такая неявная ситуация, когда это всё (неверный порядок подключения заголовков и др.) приводит к ошибкам линкера так, что даже класс полностью описаный в Заголовочном файле не видит свой конструктор и деструктор, хотя видит себя самого??? У меня такая фишка случилась... Что делать не знаю... :(

SOS! SOS! SOS! SOS! SOS! SOS! SOS!

> А TО Я - А ТО Я - А ТО Я <
> ЗАБОДАЛСЯ - ЗАБОДАЛСЯ - ЗАБОДАЛСЯ <
я решать траблы с linker-ом...

мои враги:
- LNK2019: unresolved external symbol <> in function <> (ништяк особенно тогда, когда тут пишут функцию, которой нет в моей проге... а именно, пустую функцию с глючным именем...)
- LNK2001: unresolved external symbol <>
и т.д. и т.п.


Кто поможет мне узнать всё и забыть навсегда ошибки линкера - тому вечно буду благодарен!!! Может, даже, сайт благодарственный сделаю для ВАС!!!

СПАСИБО ВСЕМ, КТО ПОМОЖЕТ!!!

...............................................

P.S. Читал я книжку Бъёрна Староготрупа... Не нашёл подробной инфы об этом... Как решить проблему не знаю...
15K
16 января 2006 года
durokol
3 / / 16.01.2006
Ой... Ну всё как обычно...
Думал чего в препроцессоре не знаю, а оказалось - всё уже знаю.

А как же всё на самом деле?

ЗНАЙТЕ ВСЕ! ДЕЛЮСЬ ТЕМ ЧТО НАРЫЛ...

- ОШИБКИ ЛИНКЕРА - ЭТО ОЧЕНЬ ЧАСТО ПРОСТО ОШИБКИ НАСТРОЕК ПРОЕКТА (ИЛИ СОЛЮШЕНА ЕСЛИ УЖ НА ТО ПОШЛО). В Visual Studio ВНИМАТЕЛЬНО СМОТРИТЕ ЛОГ ПРИ БИЛДЕ ЧТОБЫ ТАМ ХЕДЕРЫ НЕ КОМПИЛЯЛИСЬ КАК CPP ФАЙЛЫ. ТОКА CPP ДОЛЖНЫ КОМПИЛЯТЬСЯ...

- ПРАВИЛЬНО ОПИСЫВАЙТЕ ИНТЕРФЕЙС ХЕДЕРОВ И ВСЁ БУДЕТ ВАМ

Что именно было у меня:
- в настройках проекта у меня хедеры H считались как CPP файлы... и такая бяка пошла, что жуть... поставил всё как надо и всё встало на свои места... (в параметрах нескольких хедер-файлов случайно выставил General->Tool->"C\C++ Compiler Tool" а надо было General->Tool->"Custom Build Tool" и все дела...
Все ошибки линкера пропали.
(а я ещё смотрел, в Output-е почему у меня хедеры компиляются а не CPP! зрите пиплы в корень... внимательно будте...)
15K
16 января 2006 года
durokol
3 / / 16.01.2006
Усё! Раз я сам всё решил, то сайт сделаю для себя смого! =))

Хы хы... :P :roll: :) :D :} ;)

А как отосплюсь, (блин, не спал уже 41 час...), напишу Вам как правильно интерфейсы хедеров прописывать. Раскрою таки тему, что можно, а что нельзя там писать...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог