LINUX.ORG.RU

STL и #include "" vs #include <>


0

0

решил посмотреть пристальнее на STL (http://www.sgi.com/tech/stl/index.html)

читаю в их факе, что они не рекомендуют переписывать файлы вендора своими, но вместо этого сделать в makefile -Iпуть_к_новой_stl

делаю именно так и нифига не работает - просто по тупому не компиляется
(суть ошибок не важна - сейчас расскажу почему)

file1.h
#include "slist"

в makefile есть строка -Iproekt/inc/stl

slist
// bla-bla
#include <stl_sltst.h>

и вот на этом инклюде начинаются проблемы - угловые скобки, следовательно, инклюд системный (??) и ищется где-то в районе /usr/include/c++/3.2/ а это не совсем то место, которое мне надо, но там есть много другого, что мне (и не только мне) надо.
Короче, вопрос как можно отвязать системные инклюды от кастомизированных (и покдключать тот же stl по разным версиям)?


1. gcc/g++ можно пускать с ключиком --verbose, будет говорить где что ищет, в частности инклюды.

2. stl_sltst.h скорей всего лежит в bits/, то-есть "внутренний"/"не предназначеный для прямого включения.

3. все ISO C++ хидеры по стандарту включаются как <iostream> так-как это стандартный хидер (потому-что в угловых скобках) компилятор должет найти его в системной директории.

4. список директорий поиска системных инклюдов можно задавать ключиком -I/path/to/dir

HTH.

PS. если не вкурил где ошибка описывай подробней, включая версию гцц и "раскладку" инсталляции.

PPS. мешать в путях системных инклюдов инклюдники от разных libstdc++ (g++) до добра не доводит.

anonymous
()

кроме -lих-либа нужно сделать еще -Iпуть-к-их-заголовкам

anonymous
()

эта конкретная проблема была решена простым тотальным обновлением всех инклюдов (не презаписью конечно, а линками). Делаем stl_new/ и stl_old/ куда копируем "живые файлы". Простой скрипт, который линкует содержание директория с нужной версией на стадратное /usr/include/c++/3.2. Все счастливы и довольны как слоны. Но вопрос принципиальный остается - а если два (и более) человека пишут так, что требуются разные версии инклюдов? В makefile вставить скрипт перелинковки?! Моразм...

В любом случае - спасибо за отклики

laban
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.