реклама на сайте
подробности

 
 
> IAR 5.1 проблема с файлами
Beginning
сообщение Dec 11 2007, 16:02
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Проект состоит из 10 папок. В первой папке находится файл includes.h. Этот файл присоединялся во всех остальных файлах. В Options/preprocessor следующее данные:
.\App
.\Com
.\Flash
.\Menu
.\PF
.\PIC
.\Sys_calls
.\Sharp
.\PIC_perefiria
.\OS
Т.е. указаны все папки проекта.

В версии 4.42 (как и более древних) всё было OK. В 5.1 файл includes.h подключается только в файлах находящихся в той же папке. Перепробовал различные варианты (”$PROJ_DIR$/ includes.h” и др.) .Указание полного пути помогает, но этот путь мне не подходит. Как мне сделать так, что бы этот файл был виден во всех папках?

Сообщение отредактировал Beginning - Dec 11 2007, 16:18


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
diper
сообщение Dec 11 2007, 16:59
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750



В Options/preprocessor указать
$PROJ_DIR$\App

В файлах указывать #include "includes.h"
Go to the top of the page
 
+Quote Post
Beginning
сообщение Dec 11 2007, 18:23
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Цитата
В Options/preprocessor указать
$PROJ_DIR$\App


Попробую завтра.

Сообщение отредактировал Beginning - Dec 11 2007, 18:27


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 11 2007, 18:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А с относительными путями разве не работает?
Код
#include "..\App\includes.h"
Go to the top of the page
 
+Quote Post
Николай Z
сообщение Dec 11 2007, 21:29
Сообщение #5


Местный
***

Группа: Участник*
Сообщений: 418
Регистрация: 20-08-07
Пользователь №: 29 930



Цитата(rezident @ Dec 11 2007, 21:26) *
А с относительными путями разве не работает?
Код
#include "..\App\includes.h"


Причем тут директория App?

У товарища написано:
Цитата
(”$PROJ_DIR$/ includes.h” )

заведомо неверно - слэш не в ту сторону... Нужен обратный... Вот такой: "\"
Это - раз...

Во вторых - скорее всего в дирректории $PROJ_DIR$ у него лежит файл проекта...
Если он желает указать в проекте эту же дирректорию, то в трассах поиска надо указать только эту... Т.Е.
$PROJ_DIR$\ и более ничего... никаких includes.h в файлах проекта быть не должно...

тогда файл includes.h будет браться из дирректории $PROJ_DIR$....

Если оно, она, он - лежит глубже - надо указать глубже.... Где - он не написал...
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 11 2007, 21:59
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Николай Z @ Dec 12 2007, 02:29) *
Причем тут директория App?
При том, что читаю я именно так, как написано автором.
Цитата(Beginning)
Проект состоит из 10 папок. В первой папке находится файл includes.h.
Попробуйте и вы тоже читать, а не домысливать за автора.
Кроме того, у меня еще не было проблем с явным указанием относительных путей ни в одной версии ИАР.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 12 2007, 00:23
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Николай Z @ Dec 11 2007, 23:29) *
заведомо неверно - слэш не в ту сторону... Нужен обратный... Вот такой: "\"

Давненько уже вымерли компиляторы не разбирающиеся во слэшах и допускающие исключительно майкрософтовские. Прямые слеши - "прямее" smile.gif их и пользовать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Dec 12 2007, 07:54
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



В Options/preprocessor указал следующее

$PROJ_DIR$\App
$PROJ_DIR$\Com
$PROJ_DIR$\Flash
$PROJ_DIR$\Menu
$PROJ_DIR$\PF
$PROJ_DIR$\PIC
$PROJ_DIR$\Sys_calls
$PROJ_DIR$\Sharp
$PROJ_DIR$\PIC_perefiria
$PROJ_DIR$\OS

Во всех файлах #include "includes.h" и всё заработало.

Обидно crying.gif Не хватило шага, что бы разобратся самому.

Сообщение отредактировал Beginning - Dec 12 2007, 07:55


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
Николай Z
сообщение Dec 12 2007, 09:01
Сообщение #9


Местный
***

Группа: Участник*
Сообщений: 418
Регистрация: 20-08-07
Пользователь №: 29 930



Цитата(zltigo @ Dec 12 2007, 03:23) *
Давненько уже вымерли компиляторы не разбирающиеся во слэшах и допускающие исключительно майкрософтовские. Прямые слеши - "прямее" smile.gif их и пользовать.


Ну в любом случае - прямые ли, обратные ли они но только сам файл includes.h в проекте по любому указывать не нужно... Нужно указывать директорию - тогда и в тексте программы не нужно будет длинные относительные директории выписывать...
И будет достаточно написать:

#include "bla_bla_bla.h"

Сообщение отредактировал Николай Z - Dec 12 2007, 09:05
Go to the top of the page
 
+Quote Post
diper
сообщение Dec 12 2007, 10:40
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750



Цитата(Николай Z @ Dec 12 2007, 13:01) *
Ну в любом случае - прямые ли, обратные ли они но только сам файл includes.h в проекте по любому указывать не нужно...
Этого ни кто не предлагал и автор топика этого не делал.
Цитата(Николай Z @ Dec 12 2007, 13:01) *
Нужно указывать директорию - тогда и в тексте программы не нужно будет длинные относительные директории выписывать...И будет достаточно написать:#include "bla_bla_bla.h"
Загонять _абсолютно все_ каталоги в настройки компилятора не нужно. ТОлько при разумной необходимости. Особенно при пользовании чужих библиотек, когда можно наткнуться на .h файлы с одинаковыми именами.
Go to the top of the page
 
+Quote Post
Николай Z
сообщение Dec 12 2007, 13:31
Сообщение #11


Местный
***

Группа: Участник*
Сообщений: 418
Регистрация: 20-08-07
Пользователь №: 29 930



Цитата(diper @ Dec 12 2007, 13:40) *
Этого ни кто не предлагал и автор топика этого не делал.

Не знаю что он делал, но вы прочтите чуть внимательнее конец топа - вот этот:
Цитата
Перепробовал различные варианты (”$PROJ_DIR$/ includes.h” и др.) .Указание полного пути помогает, но этот путь мне не подходит.

Собственно спорить-то больше не о чем - автор достиг консенсуса с самим собой и со своим компилятором...
cool.gif
Цитата(diper @ Dec 12 2007, 13:40) *
Загонять _абсолютно все_ каталоги в настройки компилятора не нужно. ТОлько при разумной необходимости. Особенно при пользовании чужих библиотек, когда можно наткнуться на .h файлы с одинаковыми именами.

А разве кто-то предлагает все?
Загонять нужно те - которые нужны...
Ну а одинаковых имен у разных файлов в разных директориях - вообще говоря лучше избегать.
Не так уж это и сложно - сменить имя у файла.

Сообщение отредактировал Николай Z - Dec 12 2007, 13:38
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 01:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016