Помощь - Поиск - Пользователи - Календарь
Полная версия: проблема с подключением cpp файлов
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
klem4
ситуация такая есть 2 файла

1.cpp и 2.cpp

в 1.cpp написано

#include "2.cpp"


Если оба файла лежат в

C:\BC30\BIN\

то все ок. Если же положить их в

C:\BC30\BIN\some_folder\

то при компиляции 1.cpp компилер пишет что unable to open 2.cpp

Если же при этом положить 2.cpp в BIN, то компиляция проходит успешно.

На сколько я понимаю, компилятор, видя фразу
#include "2.cpp"
, начинает искать этот файл в папке BIN и НЕ_найдя его там начинает ругаться?!

компилятор BC++ 3.1
volvo
Цитата
На сколько я понимаю, компилятор, видя фразу
#include "2.cpp"

, начинает искать этот файл в папке BIN и найдя его там начинает ругаться?!
неправильно понимаешь... Компилятор начинает искать файл в текущей папке проекта (у тебя же имя файла НЕ в <>, а в кавычках), потом переходит в папки, которые перечислены в Options -> Directories -> Include Directories, а вот если файл не найден и там, то компилятор
Цитата
начинает ругаться


Кстати, зачем понадобилось инклудить CPP файл?
klem4
Цитата(volvo @ 25.08.2007 13:51) *

Компилятор начинает искать файл в текущей папке проекта


Я так тоже думал smile.gif) Но по неизвестным мне причинам, 1.cpp компилируется только если 2.cpp находится в BIN

Цитата

Кстати, зачем понадобилось инклудить CPP файл?


А большая разница между инклудингом .cpp и .h ?
volvo
Большая. CPP вообще не рекомендуется инклудить. Если используются 2 CPP файла, то делай многофайловый проект...

Цитата
по неизвестным мне причинам, 1.cpp компилируется только если 2.cpp находится в BIN
Открой File -> ChangeDir, и посмотри, что там подсвечено. Как видно ты запускаешь TC.EXE с рабочей папкой \BIN ?
klem4
Собственно вот что там:

Нажмите для просмотра прикрепленного файла
volvo
Ну вот, я про это и говорю... Смени здесь папку так, чтобы подсвечивалась та директория, в которой лежит 1.CPP, и при include пользуйся вот этим:

если 2.CPP лежит в той же папке, что и 1.CPP, то:
#include "2.cpp"

int main() {
// ...
return 0;
}


если 2.CPP - во вложенной папке sub, например - то:
#include "sub/2.cpp"

int main() {
//
return 0;
}



Можно переходить и во внешнюю папку:
#include "../2.cpp"

и т.д.
klem4
Да, так и сделал, спасибо.

Цитата
CPP вообще не рекомендуется инклудить


Спасибо, учту.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.