gcc를 사용하여 C++ 클래스를 컴파일하려고합니다. 빌드의 특성으로 인해 비표준 위치에서 gcc를 호출하고 시스템 정의가 아닌 헤더를 포함 시켜야만 다른 위치에서 세트를 추가해야합니다. 그러나이 작업을 수행 할 때 몇 가지 기본 기호 (suprise suprise)를 찾을 수없는 문제가 발생합니다. 같은 :시스템 정의 헤더 위치를 사용하지 않고 gcc 컴파일
$ (PARENT_DIR)는/usr /가 포함 I은 기본 헤더가 포함되지 않는 것을 나타냅니다 몇 가지 오류를 얻고있다
-->(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
: 그래서 나는 기본적으로 내 코드를 컴파일하려면이 명령을 실행하고/C++/$ (GCC_VERSION)/cstddef :: prtdiff_t가 선언되지 않았습니다. $ (PARENT_DIR)/usr/include/C++/$ (GCC_VERSION)/cstddef :: size_t가 선언되지 않았습니다.
헤더 파일 디렉토리를 포함 할 때 내가 잘못하고있는 것이 있습니까? 아니면 잘못된 곳을보고 있습니까?
포함 트리에 기호 링크가 있습니까? –
@ D.Shawley 거기에있을 유일한 기호 링크는 gcc가 설치하는 링크입니다. $ (PARENT_DIR)은 본질적으로 gcc 설치의 루트 위치입니다. – bogertron