내 링커 오류를보고 :되지 않은 외부 신비
unresolved external symbol "unsigned char __fastcall BD_CLC(int,int)"...
을하지만이 기능뿐만 아니라 함수의 정의에 대한 모든 참조는 형태의 것을 유지 :
__forceinline UBYTE BD_CLC(int swap,int elem);
"전처리 된 파일 생성"이 설정된 컴파일을 설정하고 출력을 살펴 보았습니다. BD_CLC가 사용 된 모든 파일에서 함수는 실제 함수 정의가
__forceinline UBYTE BD_CLC(int swap,int elem) { ... }
어떤 아이디어가 선언 된
__forceinline UBYTE BD_CLC(int swap,int elem);
물론
로 선언했다?
함수가 호출되는 모든 파일에서 프로토 타입 __forceinline UBYTE BD_CLC (int swap, int elem); 함수가 호출되기 전에 나타납니다. 이것은 전처리 기가 생성 한 ".i"파일에 따른 것입니다. – Mick
프로토 타입뿐만 아니라 몸도 볼 수 있어야합니다. __forceinline을 사용하면 함수가 호출되는 곳마다 생성 된 코드로 본문을 축 어적으로 떼어 내도록 컴파일러에 지시하지만 본문을 볼 수 없으면 호출을 생성 할 수 없으므로 호출을 생성합니다. 하지만 __forceinline을 사용했기 때문에 본문에 대한 코드가 별도로 생성되지 않으므로 호출 대상을 확인할 수 없어 링크 오류가 발생합니다. – moonshadow
그래서 헤더 파일에 선언을 넣고 선언을해야할까요? 그럼 어디서나 시체가 너무 보이지 않아야 포함되어 있습니까? –