2016-11-10 21 views
-1

Green Hills 도구 체인을 사용하는 ARM 아치를 사용하여 대상 장치에 대한 응용 프로그램을 교차 컴파일합니다 (장치가 INTEGRITY OS를 실행하지만)Green Hills toolchain을 사용하여 ARM 용 C++ 응용 프로그램을 빌드 할 때

과 같은 오류가 발생합니다
__vec_new from ... 
__vec_delete from ... 

나는 그것이 무엇을 의미하고 어떻게 해결하는지 이해하지 못합니다. 누구든지 나를 도울 수 있습니까?

+0

당신은에 표시 사라로 이름 파일 *의의 .c가 포함 된 소스와

이 포함되어 있습니다 C++ 코드를 컴파일 할 수는 있지만'new'와'delete' 연산자에 대한 구현을 제공하는 C++ 표준 라이브러리를 링크하는 것은 아닙니다. – Clifford

+0

팔 컴파일러가 설치된 폴더에서 검색했지만 libstdC++. a 또는 이와 비슷한 파일을 찾을 수 없습니다. 나에게 새로운/삭제의 구현을 포함 할 수있는 라이브러리의 파일 이름을 제안 해 주시겠습니까? – tuanpm

+0

그런 다음 툴 체인에 대한 정보를 gcc, armcc, IAR, Green Hills 또는 다른 버전 번호와 같은 질문에 추가해야합니다. 그러면 제안한대로 문제를 해결해야합니다 (예 : 전체 빌드 로그를 게시하십시오. 우리는 컴파일러 호출과 옵션뿐만 아니라 완전한 에러 메시지를 볼 수 있습니다. 그렇지 않으면 우리는 추측하고 있습니다). 질문이 중복되지 않고 다시 열릴 수도 있지만 더 많은 정보가 필요합니다 (질문 편집 - 관련 정보가있는 의견을 게시하지 마십시오 - SO는 토론 포럼이 아닙니다). – Clifford

답변

2

미해결 된 기호는 해당 기호를 정의하는 필요한 개체 코드 또는 라이브러리를 연결하지 못했음을 나타냅니다. 이러한 특수 기호는 대부분 newdelete C++ 연산자의 구현과 관련이 있으며 대부분 C++ 라이브러리를 연결하지 않았 음을 나타냅니다. Green Hills 툴 체인에 익숙하지 않지만 컴파일러와 별도로 링커를 호출하는 경우 C++ 링크를 명시 적으로 지정해야 할 수도 있습니다.

IDE를 사용하는 경우 C 프로젝트를 만들었지 만 C++ 코드를 추가 한 것이 가능합니다.이 경우 C++ 지원과 라이브러리를 연결하지 않는 링커 옵션이 발생할 수 있습니다.

Green Hill의 컴파일러에는 언어 변형 옵션 또는 링커 덮어 쓰기 옵션으로 선택된 C++ 라이브러리가 있습니다. 이 옵션은 프로젝트 관리 방법에 따라 MULTI IDE 설정 또는 명령 줄에서 설정할 수 있습니다. 컴파일러/링커 설명서를 참조하십시오 - 나는 다음과 같은 발견 :

enter image description here

당신은 전체 설명서에 액세스 할 수 있어야합니다,이 다음 페이지는 TEH 링커가 라이브러리와 어떻게 다른 라이브러리를 지정하는 방법을 검색하는 방법에 대해 설명합니다. -nostdlib을 지정하여 자동 라이브러리 검색을 비활성화 한 경우 자동 링크가 수행되지 않고 필요한 라이브러리를 명시 적으로 링크해야합니다.

나는 오류

를 해결 한

+0

이 대답은 OP에서 더 명시적인 컴파일러/링커 옵션을 보류하는 자리 표시 자임에 유의하십시오. 정보가 곧 나올 경우 업데이트 해 드리겠습니다. – Clifford

0

원인 프로젝트 소스가 나는 그것이 * cpp를 다음 오류가