Я пытаюсь скомпилировать класс c ++, используя gcc. Из-за особенностей сборки мне нужно вызывать gcc из нестандартного местоположения и включать не определенные системой заголовки, только чтобы добавить набор из другого местоположения. Однако, когда я делаю это, я сталкиваюсь с проблемой, когда я не могу найти некоторые базовые символы (неожиданный сюрприз). Поэтому я в основном запускаю эту команду для компиляции моего кода:
-->(PARENT_DIR)/usr/bin/gcc # invoke compiler
-B$(PARENT_DIR)/usr/lib64/gcc/suselinux-x8664
-B$(PARENT_DIR)/usr/lib64
#C/C++ flags
-fPIC -fvisibility=default -g -c -Wall -m64 -nostdinc
# source files
-I$(SRC_DIR_ONE)/
-I$(SRC_DIR_TWO)
-I../include
# 'Mock' include the system header files
-I$(PARENT_DIR)/usr/include/c++/$(GCC_VERSION)
-I$(PARENT_DIR)/usr/include/c++/$(GCC_VERSION)/backward
-I$(PARENT_DIR)/usr/include/c++/$(GCC_VERSION)/x86_64-suse-linux
-I$(PARENT_DIR)/usr/lib64/x86_64-suse-linux/$(GCC_VERSION)/include
-I$(PARENT_DIR)/usr/lib64/gcc/x86_64-suse-linux/$(GCC_VERSION)/include
-I$(PARENT_DIR)/usr/lib64/gcc/x86_64-suse-linux/$(GCC_VERSION)/include-fixed
-I$(PARENT_DIR)/usr/src/linux/include
-I$(PARENT_DIR)/usr/x86_64-suse-linux/include
-I$(PARENT_DIR)/usr/include/suselinux-x8664
-I$(PARENT_DIR)/usr/suselinux-x8664/include
-I$(PARENT_DIR)/usr/include
-I$(PARENT_DIR)/usr/include/linux
file.cpp
Я получаю несколько ошибок, которые указывают, что базовые заголовки не включены: например:
$ (PARENT_DIR) / usr / include / c ++ / $ (GCC_VERSION) / cstddef :: prtdiff_t не было объявлено
$ (PARENT_DIR) / usr / include / c ++ / $ (GCC_VERSION) / cstddef :: size_t не был объявлен.
Есть ли что-то, что я делаю неправильно, когда я включаю каталоги заголовочных файлов? Или я смотрю не в том месте?