AIX에서 xlc/xlC 컴파일러로 크로스 컴파일하려고합니다.C++에 대한 AIX xlC 교차 컴파일/링 케이션 C 심볼을 찾을 수 없음
다른 컴퓨터에서 기본 설정을 사용하면 코드가 성공적으로 컴파일됩니다. 코드는 실제로 교차 컴파일과 함께 성공적으로 컴파일되지만 문제는 링커에서 발생합니다. , .setsockopt (INT, INT, INT, const를 무효 *, 부호 없음 long) : 나는 코드를 연결하려고하면
$(CHILD_OS)/usr/vacpp/bin/xlC -q32 -qnolib -brtl -o $(EXECUTABLE) $(OBJECT_FILES)
-L$(CHILD_OS)/usr/lib
-L$(CHILD_OS)/usr/vacpp/lib/profiled
-L$(CHILD_OS)/usr/vacpp/lib
-L$(CHILD_OS)/usr/vac/lib
-L$(CHILD_OS)/usr/lib
-lc -lC -lnsl -lpthread
-F$(CHILD_OS)$(CUSTOM_CONFIG_FILE_LOCATION)
, 나는 몇 가지 정의되지 않은 심볼을 얻을이 함께 개체를 연결하는 명령입니다.
실종 된 기호가 표준 c 라이브러리 libc.a에서 발견 된 것을 발견했습니다. 픽업되는 libc.a에 대해 nm으로 심볼을 검색했을 때 심볼이 실제로 존재합니다. 나는 C++에서 C 객체를 읽을 수 없다는 문제가있을 것이라고 생각하지만 실제로는 어둠 속에서 촬영 중입니다.
상위 운영 체제의 헤더 파일이 포함되어 있는지 의심 스럽습니다 (-qnolib 및 -qnostdinc는 xlc/xlC와 동일합니다). 나는 포함 된 라이브러리 디렉토리 아래에서 libc.a에 대해 nm을 실행했으며 모든 심볼이 발견되었습니다. 불행히도 좋은 제안은 이미 시도되었습니다. – bogertron
오브젝트 파일에 대해 nm을 실행하여, 찾고있는 실제 심볼을 찾으십시오. xlc에 나열된 심볼은 C++ 참조의 디맹 글드 버전처럼 보입니다. –