Форум программистов, компьютерный форум CyberForum.ru

Подстановка в #include [не домашняя работа] - C++

Восстановить пароль Регистрация
 
hinst
 Аватар для hinst
22 / 8 / 1
Регистрация: 06.01.2013
Сообщений: 113
28.01.2013, 17:36     Подстановка в #include [не домашняя работа] #1
У меня есть скачанная библиотека log4cplus, но вопрос не по ней. Она лежит распакованная где-то. например, в "C:\Users\hinst\Docs\Pro\log4cplus-1.1.0". В моём проекте надо включать заголовочные файлы из log4cplus. Например
C++
1
#include "log4cplus/logger.h"
Сам мой проект лежит совершенно в другой папке. И поэтому мне нужно чтобы в директиве #include слово log4cplus значило бы "C:\Users\hinst\Docs\Pro\log4cplus-1.1.0\include\log4cplus". Но я не понимаю как это сделать. Можно просто добавить в список путей include компилятора всю эту папку, но проблема в том, что тогда в моих файлах заголовочные файлы библиотеки будут включаться вот так
C++
1
#include "logger.h"
а не так
C++
1
#include "log4cplus/logger.h"
что есть принципиальная разница, т.к в этом log4cplus ещё много разных подозрительных заголовочных файлов типа "stream.h" или "hdc.h" а я не хочу чтобы они засоряли глобальное пространство имён файлов, а были бы в log4cplus/ на случай, если я сам захочу в своём проекте создать "stream.h".
Как сделать? Использую Qt
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2013, 17:36     Подстановка в #include [не домашняя работа]
Посмотрите здесь:

Описать класс «домашняя библиотека» C++
Домашняя бухгалтерия C++
ошибка в лабе не находит #include<iomanip.h> #include<conio.h> C++
C++ Какая разница между #include<> и #include""?
C++ Описать класс «домашняя библиотека»
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.01.2013, 17:47     Подстановка в #include [не домашняя работа] #2
Цитата Сообщение от hinst Посмотреть сообщение
Можно просто добавить в список путей include компилятора всю эту папку, но проблема в том, что тогда в моих файлах заголовочные файлы библиотеки будут включаться вот так
А добавить папку, которая выше в иерархии?
Код
-IC:\Users\hinst\Docs\Pro\log4cplus-1.1.0\include\
(не уверен, как это в венде, но по логике должно быть так)
hinst
 Аватар для hinst
22 / 8 / 1
Регистрация: 06.01.2013
Сообщений: 113
28.01.2013, 17:49  [ТС]     Подстановка в #include [не домашняя работа] #3
Цитата Сообщение от soon Посмотреть сообщение
А добавить папку, которая выше в иерархии?
Вот я именно это и пробовал в первую очередь. Но судя по всему компиляторы C++ так не умеют, они не ищут подкаталоги в добавленных папках. пишет Cannot open include file: 'log4cplus/logger.h': No such file or directory, хотя папка, в которой лежит log4cplus добавлена
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.01.2013, 17:50     Подстановка в #include [не домашняя работа] #4
hinst, значит что-то неправильно. Проверьте, не экранируются ли, случаем, символы, за счет обратного слеша в пути.
hinst
 Аватар для hinst
22 / 8 / 1
Регистрация: 06.01.2013
Сообщений: 113
28.01.2013, 18:04  [ТС]     Подстановка в #include [не домашняя работа] #5
В самом деле, работает. Хорошо что вы мне сказали чтобы я проверил а то бы я думал что не работает. Было не из-за обратных слэшей а ещё из-за какой-то ерунды, похоже, что у меня make-файлы не регенерируются когда надо, приходится удалять их вручную время от времени
Yandex
Объявления
28.01.2013, 18:04     Подстановка в #include [не домашняя работа]
Ответ Создать тему
Опции темы

Текущее время: 11:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru