Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2011, 13:42   #1
steve_g
 
Регистрация: 08.08.2011
Сообщений: 5
По умолчанию Компиляция

Здравствуйте!!! Меня волнует 1 вопрос, связан с параметрами компилятора при написании makefile!!! Для создания приложения - выполнения makefile -используется nmake!

Итак - в проекте есть 2 заголовочных файла, 2 их реализации и главная программа с функцией main. В случае если я передаю компилятору следующую строку
cl.exe WorkWQueue.h WorkWQueue.cpp /Yustdafx.h $(Includer) $(CompilingParams) то все нормально, если же
cl.exe WorkWQueue.cpp WorkWQueue.h /Yustdafx.h $(Includer) $(CompilingParams) то error LNK 2019,


TransfAndSaveAs.obj : error LNK2019: unresolved external symbol "public: struct
_IplImage * __thiscall WorkingWithQueue::WorkWQueue::Loadi ng(void)" (?Loading@Wo
rkWQueue@WorkingWithQueue@@QAEPAU_I plImage@@XZ) referenced in function "public:
void __thiscall Preobrazovanie::TransfAndSaveAs::wo rk_with(void)" (?work_with@Tr
ansfAndSaveAs@Preobrazovanie@@QAEXX Z)

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


Подскажите пожалуйста , в чем причина этого безобразия?

P.S> первое что лезет в голову - заголовочный файл надо передавать раньше, чем его реализацию, но человек, который меня стажирует , не уверен, что в этом причина - да и я нигде про это упоминания не нашел!!

Помогите пожалуйста, кто может!
steve_g вне форума Ответить с цитированием
Старый 25.08.2011, 13:50   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще то заголовочники не компилируют, а включают в cpp файл, который уже компилируется.

у меня например есть заголовочник(с обьявленим класса) Object.h и Object.cpp(с реализацией методов).
Object.cpp инклюдит в себя Object.h.
компилирую Object.cpp и все в порядке.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.08.2011, 15:54   #3
steve_g
 
Регистрация: 08.08.2011
Сообщений: 5
По умолчанию

Спасибо!!!! Ответ как говорится на верху=)

P.S> а все же, если предположить, что надо было .h включать, почему могла случиться такая ошибка?
steve_g вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ компиляция detalik Помощь студентам 1 02.05.2011 17:08
Компиляция ? denes Общие вопросы C/C++ 12 25.09.2010 20:23
компиляция Рамик Помощь студентам 6 14.03.2009 16:07
компиляция com m0t0d0r Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 24.01.2009 11:49
Компиляция xGroupers Общие вопросы Delphi 1 24.03.2008 11:57