Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Относительный путь для #include <file.h> 
V
    Опции темы
KaraKum
  Дата 20.4.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Доброе время суток.
Компилирую вместе со своим проектом стороннюю библиотеку - она подключает свои же header-файлы (которые лежат в той же папке с .c-файлами) как #include <some_file.h>.
Как через -Irelative_path/library или иным способом объявить относительный путь для поиска файлов, подключаемых через <>?

Это сообщение отредактировал(а) KaraKum - 20.4.2010, 16:53
PM MAIL WWW   Вверх
djamshud
Дата 20.4.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Вы сами ответили на свой вопрос:).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
KaraKum
  Дата 20.4.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Если вы имеете в виду -Irelative_path/library, то это не решение.

Ситуация такова:
- исходники проекта находятся в папке path_to_project/project/src
- исходники подключаемой библиотеки (компилируемой в проекте) находятся в папке path_to_project/project/src/goocanvas
- все библиотечные исходники подключают файлы как #include <goocanvas_something.h>

Если включить опцию -Ipath_to_project/project/src/goocanvas, то всё верно, НО проект находится в СВН и у всех пути (path_to_project) к проекту разные, но опции -I./, -I., -I./src, -I./src/goocanvas и так далее не работают.

Это сообщение отредактировал(а) KaraKum - 20.4.2010, 17:21
PM MAIL WWW   Вверх
djamshud
Дата 20.4.2010, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Делайте рабочей директорий компилятора (к примеру размещайте там Makefile) path_to_project/project. Тогда -Isrc/goocanvas сработает (это утверждение точно верно для GCC, на других же компиляторах нужно проверять - я ими не пользуюсь).

Upd:
Хотел выложить простой пример для Linux/GCC, но форум ругается на tgz... "Вы не можете загружать такой тип файлов"

Это сообщение отредактировал(а) djamshud - 20.4.2010, 18:50


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
KaraKum
  Дата 21.4.2010, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Компилятор "g++" под Linux'ом - метод -Isrc/goocanvas не работает :( .

P.S. Попробуйте загрузить сюда просто .tar-файл.

Это сообщение отредактировал(а) KaraKum - 21.4.2010, 09:33
PM MAIL WWW   Вверх
KOHCEPBATOP
Дата 21.4.2010, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 21.4.2010

Репутация: нет
Всего: 1



Цитата(KaraKum @  20.4.2010,  17:16 Найти цитируемый пост)
опции -I./, -I., -I./src, -I./src/goocanvas и так далее не работают.
а через родительский каталог (-I../src/goocanvas) тоже не берет?

PM MAIL   Вверх
KaraKum
  Дата 21.4.2010, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Цитата(KOHCEPBATOP @ 21.4.2010,  12:30)
Цитата(KaraKum @  20.4.2010,  17:16 Найти цитируемый пост)
опции -I./, -I., -I./src, -I./src/goocanvas и так далее не работают.
а через родительский каталог (-I../src/goocanvas) тоже не берет?

Попробовал - не получилось :(
PM MAIL WWW   Вверх
djamshud
Дата 21.4.2010, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Простой tar.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  makefile.tar 10,00 Kb


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
jhonyxakep
Дата 21.4.2010, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Divide Et Impera
**


Профиль
Группа: Участник
Сообщений: 983
Регистрация: 7.4.2009
Где: Что, Когда?

Репутация: нет
Всего: 8



KaraKum, может вы про это?

Код

#include "some_file.h"

PM MAIL ICQ   Вверх
KaraKum
Дата 21.4.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Цитата(djamshud @ 21.4.2010,  12:46)
Простой tar.

Пример прекрасно работает.

Я свой проект компилирую через KDevelop и флаги -I... задаю в Makefile.am (пробовал и в INCLUDES и в project_CPPFLAGS) - возможно причина в этом, но всё-равно не понимаю почему - ведь эти параметры вроде передаются напрямую компилятору.
PM MAIL WWW   Вверх
djamshud
Дата 21.4.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



KaraKum, от KDevelop отказался именно по причине, что не смог нормально управлять процессом компиляции. В нынешней версии он вроде бы уже умеет работать с внешним Makefile, но я пока не тестировал.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
KaraKum
Дата 21.4.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Цитата(jhonyxakep @ 21.4.2010,  13:27)
KaraKum, может вы про это?

Код

#include "some_file.h"

Вообще все файлы, которые библиотека инклудит лежат в той же папке что сама библиотека  smile и если заменить <file_name.txt> на "file_name.txt", то всё будет работать, но менять довольно трудоёмко и каждый раз при обновлении библиотеки.
PM MAIL WWW   Вверх
KaraKum
  Дата 21.4.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Цитата(djamshud @ 21.4.2010,  14:02)
KaraKum, от KDevelop отказался именно по причине, что не смог нормально управлять процессом компиляции. В нынешней версии он вроде бы уже умеет работать с внешним Makefile, но я пока не тестировал.

А в пользу какого IDE произошёл отказ? Eclipse, Dev-C++?
PM MAIL WWW   Вверх
djamshud
Дата 21.4.2010, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



kate + make


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
KaraKum
Дата 21.4.2010, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 640
Регистрация: 3.12.2007

Репутация: 1
Всего: 1



Оригинально  smile 

Спасибо за ответы. Проблема, можно сказать, решена.

Вопрос отмечен как решённый.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.