Рулезные Сишники - Помогите!
Но тут установил 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. Читал я книжку Бъёрна Староготрупа... Не нашёл подробной инфы об этом... Как решить проблему не знаю...
Думал чего в препроцессоре не знаю, а оказалось - всё уже знаю.
А как же всё на самом деле?
ЗНАЙТЕ ВСЕ! ДЕЛЮСЬ ТЕМ ЧТО НАРЫЛ...
- ОШИБКИ ЛИНКЕРА - ЭТО ОЧЕНЬ ЧАСТО ПРОСТО ОШИБКИ НАСТРОЕК ПРОЕКТА (ИЛИ СОЛЮШЕНА ЕСЛИ УЖ НА ТО ПОШЛО). В Visual Studio ВНИМАТЕЛЬНО СМОТРИТЕ ЛОГ ПРИ БИЛДЕ ЧТОБЫ ТАМ ХЕДЕРЫ НЕ КОМПИЛЯЛИСЬ КАК CPP ФАЙЛЫ. ТОКА CPP ДОЛЖНЫ КОМПИЛЯТЬСЯ...
- ПРАВИЛЬНО ОПИСЫВАЙТЕ ИНТЕРФЕЙС ХЕДЕРОВ И ВСЁ БУДЕТ ВАМ
Что именно было у меня:
- в настройках проекта у меня хедеры H считались как CPP файлы... и такая бяка пошла, что жуть... поставил всё как надо и всё встало на свои места... (в параметрах нескольких хедер-файлов случайно выставил General->Tool->"C\C++ Compiler Tool" а надо было General->Tool->"Custom Build Tool" и все дела...
Все ошибки линкера пропали.
(а я ещё смотрел, в Output-е почему у меня хедеры компиляются а не CPP! зрите пиплы в корень... внимательно будте...)
Хы хы... :P :roll: :) :D :} ;)
А как отосплюсь, (блин, не спал уже 41 час...), напишу Вам как правильно интерфейсы хедеров прописывать. Раскрою таки тему, что можно, а что нельзя там писать...