c++에서 네임맹글링으로 인해 빌드 스텁 생성 단계에서 링크 에러가 발생하는 경우가 있습니다.
현재 Controller Tester 에서 링크 에러를 이용하여 테스트 실행 단계에서 자동으로 스텁을 생성해줍니다.
아래와 같이 네임맹글링 된 함수를 직접 호출하도록 구현이 되었을 경우, 빌드 스텁에서는 디맹글링된 함수로 빌드 스텁을 생성하기 때문에 링크 에러가 발생합니다.

extern void nameMangling__FV();
unsigned char userFunction()
{
       nameMangling__FV();
	...
}
//stubCode
void nameMangling(){
      //stub code
}

아래와 네임 맹글링을 제거하도록 원본 코드를 수정하는게 가장 좋은 방법입니다.

extern "C" void nameMangling();
unsigned char userFunction()
{
       nameMangling();
	...
}
//stubCode
void nameMangling(){
      //stub code
}

만약 네임맹글링을 수정하도록 원본 코드를 고칠 수 없는 경우에 툴체인에 cs_replace_code 옵션으로 함수 호출부를 수정해주어야합니다.

cs_replace_code=extern void nameMangling__FV();<cs_delim>extern "C" void nameMangling();
cs_replace_code = nameMangling__FV();<cs_delim>nameMangling();

Need more help with this?
Don’t hesitate to contact us here.

Thanks for your feedback.