> 백엔드 개발 > C++ > 본문

Visual Studio 2010의 C에서 C 함수를 호출할 때 \'해결되지 않은 외부 기호\' 오류를 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-28 09:49:02
원래의
443명이 탐색했습니다.

How to Resolve

Visual Studio 2010의 C 코드에서 프로젝트 간 C 함수 호출의 링커 오류

링커 오류 "확인되지 않은 외부 기호 g_fmt"를 해결하려면 "가 Visual Studio 2010의 C 코드에서 C 함수를 호출하는 동안 발생하는 경우 다음 단계가 도움이 될 수 있습니다.

1. 조직 및 이름 지정:

각 C 모듈에 자체 헤더와 구현(확장자 .c)이 있는지 확인하세요. 인클루드 가드로 G_FMT_H와 같이 파일 및 매크로에 대해 일관된 명명 규칙을 사용합니다.

2. 헤더 파일 수정:

header.h 헤더 파일을 함수 내보내기용 매크로가 포함된 function.h로 바꾸세요.

<code class="c">#define FUNCTIONS_EXPORT_API __declspec(dllexport) // For DLL export
#ifdef __cplusplus
extern "C" {
#endif

FUNCTIONS_EXPORT_API char *dtoa(double, int, int, int*, int*, char**);
FUNCTIONS_EXPORT_API char *g_fmt(char*, double);
FUNCTIONS_EXPORT_API void freedtoa(char*);

#ifdef __cplusplus
}
#endif</code>
로그인 후 복사

3. 구현 파일 수정:

해당 구현 파일인 function.c를 생성하고 헤더 파일을 포함합니다. 내보내기에 필요한 기능과 매크로를 정의하세요.

<code class="c">#include "functions.h"

char *dtoa(double, int, int, int*, int*, char**) {} // Define functions
char *g_fmt(char*, double) {}
void freedtoa(char*) {}</code>
로그인 후 복사

4. 함수 내보내기:

DLL을 빌드하는 프로젝트에서(또는 Visual Studio의 프로젝트 설정으로) FUNCTIONS_EXPORT 매크로를 정의하여 내보낼 함수를 표시합니다. 또는 Visual Studio IDE에서 자동으로 정의한 매크로인 ${YOUR_PROJECT_NAME}_EXPORTS를 사용하세요.

추가 고려 사항:

  • 헤더에 동일한 포함 가드를 사용하세요. 파일 및 해당 구현 파일.
  • DLL에 연결하는 프로젝트에 올바른 가져오기 라이브러리가 있거나 올바른 가져오기 DLL을 참조하는지 확인하세요.
  • 프로젝트 속성에서 전처리기 정의를 확인하여 내보내기가 매크로가 올바르게 정의되었습니다.

위 내용은 Visual Studio 2010의 C에서 C 함수를 호출할 때 \'해결되지 않은 외부 기호\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!