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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прописка стандартных путей с помощью директив 
:(
    Опции темы
CyraxZ
Дата 11.12.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Работаю с XML-парсером xerces. Во всех его исходниках (их целая куча) модули подключаются как
стандартные (с угловыми скобками), например, <xercesc/dom/DOMAttr.hpp>. Все include'ы
начинаются с каталога xerces, т.е. он должен распознаваться как стандартный.
Пишу в C++Builder'е независимый переносимый модуль на C++ и STL. Поэтому, стандартные пути
необходимо прописать в коде с помощью стандартных C++-ных директив (не в свойствах проекта IDE C++Builder).
Как это сделать ?
PM MAIL   Вверх
JackYF
Дата 11.12.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Да так и сделать:
#include <xercesc/dom/DOMAttr.hpp>

Только в настройках каждого отдельного компилятора нужно будет указывать путь к xercesc.

А код останется переносимым.
Или я чего-то недопонял?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 12.12.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



В коде на плюсах сие не делается. По хорошему, это прописывается в твоей билд-системе (мейкфайлы, jam-файлы, pro-файлы и т. д.).


--------------------
PM MAIL ICQ Skype   Вверх
CyraxZ
Дата 12.12.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У меня тут возник смежный вопрос. С++Builder прописывает в файле проекта среди остальных путей и путь к текущему каталогу. Этот путь вместе с остальными через параметры передаётся компилятору (при интерпретации файла проекта). Но будет ли компилятор искать по умолчанию хидер в текущем каталоге, если среди передаваемых ему через параметры стандартных путей путь к текущему каталогу будет отсутствовать ?  (вопрос относится вообще к любым компиляторам)

Любитель
А по плохому ?  Т.е. вообще (вопрос, скажем, из интереса) можно ли такое сделать с помощью стандартных C++ - ных директив. Будет только плюс переносимости из одной IDE на другую...
PM MAIL   Вверх
Anikmar
Дата 12.12.2006, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Недавно похожая тема обсуждалась. Как переносить проект между машиной на работе и домашней, если абсолютные пути отличаются, а относительные - одинаковые.
Было предложено запихать все пути в переменные окружения, при таком подходе можно таскать спокойно - главное, чтобы переменные были определены корректно...
Может и в данном случае такое решение подойдет.
PM MAIL ICQ   Вверх
CyraxZ
Дата 12.12.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Anikmar, запихать в переменные окружения Windows ?

А вообще, странно, что в проекте нельзя указывать относительные пути...
PM MAIL   Вверх
Daevaorn
Дата 12.12.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

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



Цитата(CyraxZ @  13.12.2006,  00:32 Найти цитируемый пост)
А вообще, странно, что в проекте нельзя указывать относительные пути... 

Все вопросы к Borland.
Как уже сказал Любитель, при использовании грамотной билд-системы проблем с переходом на другой компилятор и даже платформу - не будет. конечно при правильном(портабельном) коде.
PM MAIL WWW   Вверх
CyraxZ
Дата 13.12.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Daevaorn
Ну, а какие "билд-системы" грамотные ?
(например, из BCB, MSVC, Eclipse)
PM MAIL   Вверх
Daevaorn
Дата 13.12.2006, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

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



Цитата(CyraxZ @  13.12.2006,  01:03 Найти цитируемый пост)
(например, из BCB, MSVC, Eclipse) 

Никакие

Мой фаворит: http://www.scons.org/
Ещё: http://www.perforce.com/jam/jam.html
         http://ant.apache.org/
Классика: http://www.gnu.org/software/make/make.html
PM MAIL WWW   Вверх
Любитель
Дата 14.12.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Eclipse позволяет непосредственно работать с мейками. По идее должна быть также родная поддержка анта для плюсов (всё же это родная билд-система эклипса).
CyraxZ, а по плохому пишешь сценарий (хотя бы два штуки: бат и сх), который запустит компилер и прочее. Тебе сие больше нравиться?


--------------------
PM MAIL ICQ Skype   Вверх
CyraxZ
Дата 14.12.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Насчёт прописки относительного пути в C++ Builder (и в других IDE):
./<подкаталоги текущего каталога>
и не потребуется трогать переменную PATH...

(единственный минус - по умолчанию прописываются абсолютные пути (это касается C++ Builder, насчёт остальных не знаю))
PM MAIL   Вверх
CyraxZ
Дата 14.12.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По сабжу:
1. Скажем, мне нужно подключать XercesLib.dll неявно. При этом подключать не все, а только те функции, которые используются в программе. Как это сделать ?  Судя по всему, нужно либо включить в библиотеку импорта XercesLib.lib только необходимые функции из dll, либо как-то указать линковщику, что линковать нужно только вызываемые в программе функции...
2. Если я соберу объектную библиотеку (.lib) с объектным кодом всех сырцов xerces'а, статически слинкую с основной программой, то будут ли дебажиться cpp-ники сырцов ?
(при сборке dll-ки в опциях компилятора указан пункт Debug information)




PM MAIL   Вверх
JackYF
Дата 14.12.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



По пункту 2: скорее всего да.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 15.12.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



1. Если у тебя есть исходники, то это несложно.
2. Да - при правильных настройках (путей и пр.)

ЗЫ Сие уже впрочем отдельная тема пошла.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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