@Kamikadze1024

Как добавить путь к инклудам в системные пути gcc?

Добрый день! Хочу добавить каталоги инклудов с бустом в системные пути gcc через makefile. Как это сделать?

PROJECT   = fiscat
CC        = arm-linux-gcc
CXX       = arm-linux-g++
STRIP     = arm-linux-strip

ifeq ($(DEBUG), 1)
FLAGS     = -O0 -ggdb3 -DDEBUG
else
FLAGS     = -O2 -DNDEBUG
endif
FLAGS    += -Werror

OFLAGS    = $(FLAGS)
OFLAGS   += -Isrc/appl/include -Isrc/bsp/include
OFLAGS   += -D__FILENAME__='"$(notdir $<)"'

CFLAGS    = $(OFLAGS) -Isrc/readyBoost/include/boost -std=gnu99
CXXFLAGS  = $(OFLAGS) -Isrc/readyBoost/include/boost -std=c++11 -Wall

TARGET    = bin/fiscat
CSRC      = $(shell find src -name *.c)
CXXSRC    = $(shell find src -name *.cpp)
COBJ      = $(patsubst %.c,   %.o, $(CSRC))
CXXOBJ    = $(patsubst %.cpp, %.o, $(CXXSRC))
LDLIBS    = -lpthread -lsrc/readyBoost/lib

all: $(TARGET)

$(TARGET): $(COBJ) $(CXXOBJ)
	rm -rf bin; mkdir bin/
	$(CXX) $(FLAGS) $(COBJ) $(CXXOBJ) $(LDLIBS) -o$@
ifneq ($(DEBUG), 1)
	$(STRIP) $(TARGET)
endif
	@du -h $(TARGET)
	@file $(TARGET)

%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

clean:
	find src -name *.o -delete
	rm -fr $(TARGET)
  • Вопрос задан
  • 1809 просмотров
Решения вопроса 2
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Никак. Системные пути hardcoded. Изменить их можно только пересборкой самого gcc. Makefile для того и служит, чтобы прописать все необходимые пути и прочее. И именно поэтому поверх него накрутили столько всяческих вещей - pkgconfig, autotools, cmake - они все вроде как призваны облегчать работу программиста по формированию проекта, но на самом деле запросто способны его в хлам запутать, особенно cmake :)

Если Вы задумались над переносимостью проекта - то Вам либо с autotools разбираться (хотя с ними придется разобраться в любом случае), либо с cmake.
Ответ написан
@xibir
В параметр -I нужно прописать папку, где лежит весь boost. Из обсуждения ответа выше это должно быть -Isrc/readyBoost/include
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы