![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 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> первое что лезет в голову - заголовочный файл надо передавать раньше, чем его реализацию, но человек, который меня стажирует , не уверен, что в этом причина - да и я нигде про это упоминания не нашел!! Помогите пожалуйста, кто может! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
вообще то заголовочники не компилируют, а включают в cpp файл, который уже компилируется.
у меня например есть заголовочник(с обьявленим класса) Object.h и Object.cpp(с реализацией методов). Object.cpp инклюдит в себя Object.h. компилирую Object.cpp и все в порядке. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 08.08.2011
Сообщений: 5
|
![]()
Спасибо!!!! Ответ как говорится на верху=)
P.S> а все же, если предположить, что надо было .h включать, почему могла случиться такая ошибка? ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++ компиляция | 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 |