![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Работаю с XML-парсером xerces. Во всех его исходниках (их целая куча) модули подключаются как
стандартные (с угловыми скобками), например, <xercesc/dom/DOMAttr.hpp>. Все include'ы начинаются с каталога xerces, т.е. он должен распознаваться как стандартный. Пишу в C++Builder'е независимый переносимый модуль на C++ и STL. Поэтому, стандартные пути необходимо прописать в коде с помощью стандартных C++-ных директив (не в свойствах проекта IDE C++Builder). Как это сделать ? |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Да так и сделать:
#include <xercesc/dom/DOMAttr.hpp> Только в настройках каждого отдельного компилятора нужно будет указывать путь к xercesc. А код останется переносимым. Или я чего-то недопонял? |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
В коде на плюсах сие не делается. По хорошему, это прописывается в твоей билд-системе (мейкфайлы, jam-файлы, pro-файлы и т. д.).
|
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
У меня тут возник смежный вопрос. С++Builder прописывает в файле проекта среди остальных путей и путь к текущему каталогу. Этот путь вместе с остальными через параметры передаётся компилятору (при интерпретации файла проекта). Но будет ли компилятор искать по умолчанию хидер в текущем каталоге, если среди передаваемых ему через параметры стандартных путей путь к текущему каталогу будет отсутствовать ? (вопрос относится вообще к любым компиляторам)
Любитель, А по плохому ? Т.е. вообще (вопрос, скажем, из интереса) можно ли такое сделать с помощью стандартных C++ - ных директив. Будет только плюс переносимости из одной IDE на другую... |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Недавно похожая тема обсуждалась. Как переносить проект между машиной на работе и домашней, если абсолютные пути отличаются, а относительные - одинаковые.
Было предложено запихать все пути в переменные окружения, при таком подходе можно таскать спокойно - главное, чтобы переменные были определены корректно... Может и в данном случае такое решение подойдет. |
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Anikmar, запихать в переменные окружения Windows ?
А вообще, странно, что в проекте нельзя указывать относительные пути... |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Все вопросы к Borland. Как уже сказал Любитель, при использовании грамотной билд-системы проблем с переходом на другой компилятор и даже платформу - не будет. конечно при правильном(портабельном) коде. |
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Daevaorn
Ну, а какие "билд-системы" грамотные ? (например, из BCB, MSVC, Eclipse) |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Никакие Мой фаворит: http://www.scons.org/ Ещё: http://www.perforce.com/jam/jam.html http://ant.apache.org/ Классика: http://www.gnu.org/software/make/make.html |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Eclipse позволяет непосредственно работать с мейками. По идее должна быть также родная поддержка анта для плюсов (всё же это родная билд-система эклипса).
CyraxZ, а по плохому пишешь сценарий (хотя бы два штуки: бат и сх), который запустит компилер и прочее. Тебе сие больше нравиться? |
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Насчёт прописки относительного пути в C++ Builder (и в других IDE):
./<подкаталоги текущего каталога> и не потребуется трогать переменную PATH... (единственный минус - по умолчанию прописываются абсолютные пути (это касается C++ Builder, насчёт остальных не знаю)) |
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
По сабжу:
1. Скажем, мне нужно подключать XercesLib.dll неявно. При этом подключать не все, а только те функции, которые используются в программе. Как это сделать ? Судя по всему, нужно либо включить в библиотеку импорта XercesLib.lib только необходимые функции из dll, либо как-то указать линковщику, что линковать нужно только вызываемые в программе функции... 2. Если я соберу объектную библиотеку (.lib) с объектным кодом всех сырцов xerces'а, статически слинкую с основной программой, то будут ли дебажиться cpp-ники сырцов ? (при сборке dll-ки в опциях компилятора указан пункт Debug information) |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
По пункту 2: скорее всего да.
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
1. Если у тебя есть исходники, то это несложно.
2. Да - при правильных настройках (путей и пр.) ЗЫ Сие уже впрочем отдельная тема пошла. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |