Форум «Всё о Паскале» _ Ада и другие языки _ проблема с подключением cpp файлов
Автор: klem4 25.08.2007 16:47
ситуация такая есть 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 25.08.2007 16:51
Цитата
На сколько я понимаю, компилятор, видя фразу
#include "2.cpp"
, начинает искать этот файл в папке BIN и найдя его там начинает ругаться?!
неправильно понимаешь... Компилятор начинает искать файл в текущей папке проекта (у тебя же имя файла НЕ в <>, а в кавычках), потом переходит в папки, которые перечислены в Options -> Directories -> Include Directories, а вот если файл не найден и там, то компилятор
Цитата
начинает ругаться
Кстати, зачем понадобилось инклудить CPP файл?
Автор: klem4 25.08.2007 16:57
Цитата(volvo @ 25.08.2007 13:51)
Компилятор начинает искать файл в текущей папке проекта
Я так тоже думал ) Но по неизвестным мне причинам, 1.cpp компилируется только если 2.cpp находится в BIN
Цитата
Кстати, зачем понадобилось инклудить CPP файл?
А большая разница между инклудингом .cpp и .h ?
Автор: volvo 25.08.2007 17:00
Большая. CPP вообще не рекомендуется инклудить. Если используются 2 CPP файла, то делай многофайловый проект...
Цитата
по неизвестным мне причинам, 1.cpp компилируется только если 2.cpp находится в BIN
Открой File -> ChangeDir, и посмотри, что там подсвечено. Как видно ты запускаешь TC.EXE с рабочей папкой \BIN ?
Автор: klem4 25.08.2007 20:15
Собственно вот что там:
Автор: volvo 25.08.2007 20:25
Ну вот, я про это и говорю... Смени здесь папку так, чтобы подсвечивалась та директория, в которой лежит 1.CPP, и при include пользуйся вот этим:
если 2.CPP лежит в той же папке, что и 1.CPP, то:
#include "2.cpp"
int main() { // ... return 0; }
если 2.CPP - во вложенной папке sub, например - то: