순수 C-st usb 라이브러리에 프로젝트가 있고이를 C++로 마이 그 레이션하고 동일한 구조를 클래스로 변경해야합니다. (HAL 라이브러리를 제외하고) 내가 .cpp
에 .c
에서 모든 파일의 확장자를 변경C C++로 마이 그 레이션 (임베디드)
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
: 내가 좋아하는 모든 C++ "보호"를 제거했습니다. 나는 C++ .hex
이 7kB 작고 그 다음에 C .hex
임을 깨달았다. 내가 .map
파일을 조사했을 때 나는 많은 기능이 빠져 있음을 알았다. 나는 static
함수가 그것을 일으켰다 고 생각했지만, static
키워드를 제거하는 것이 도움이되지 않았다. 누구나 어떤 기능이 컴파일되지 않았는지 알 수 있습니까? 확장 기능이 .c
일 때 모든 것이 좋습니다.
그냥 레코드 용 : 컴파일러와 링커의 경우 파일 확장명이 부적합합니다. –
재미있는 몇 가지 사항 : 전체 크기에 비해 7kB 작습니까? 함수 정의를 잃어 버렸습니까? 아니면 소프트웨어에서 잃어버린 기능입니까? –
C에서 30kB, C++에서 23kB. 나는 기능을 상실했다. C에서 컴파일 될 때 PC는 내 장치를 인식하지만, C++로 컴파일하면 그렇지 않습니다. – legier