> 백엔드 개발 > C++ > Visual Studio에서 DLL을 빌드할 때 CMake가 모든 기호를 자동으로 내보낼 수 있나요?

Visual Studio에서 DLL을 빌드할 때 CMake가 모든 기호를 자동으로 내보낼 수 있나요?

Susan Sarandon
풀어 주다: 2024-11-27 07:54:09
원래의
415명이 탐색했습니다.

Can CMake Automatically Export All Symbols When Building a DLL in Visual Studio?

DLL 생성 시 모든 기호 내보내기

시나리오

Visual Studio 2005의 목표는 DLL 생성 시 모든 기호를 자동으로 내보내는 것입니다. __declspec(dllexport) 주석을 수동으로 추가하거나 .def 파일을 제작하지 않고도 가능합니다. 이것이 가능합니까?

CMake를 사용한 솔루션

답변: 예, 최신 버전의 CMake(버전 3.3.20150721-g9cd2f-win32-부터)를 사용하면 이를 달성할 수 있습니다. x86.exe 이후). 이 기능은 현재 개발 지점에 있으며 향후 릴리스 버전에 통합될 예정입니다.

단계:

  1. CMake 다운로드: 다운로드 제공된 링크에서 CMake 개발 버전을 다운로드하세요.
  2. CMake 만들기 프로젝트: CMakeLists.txt 파일을 기반으로 CMake를 사용하도록 프로젝트를 구성합니다.
  3. 기호 내보내기 활성화: CMakeLists.txt 파일에 다음 줄을 추가합니다.

    set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
    로그인 후 복사
  4. 프로젝트 빌드: Visual Studio 만들기 CMake(cmake-gui)를 사용하여 프로젝트를 프로젝트하고 컴파일합니다.

참고: 이 접근 방식을 사용하려면 컴파일하는 동안 전체 프로그램 최적화(/GL)를 비활성화해야 합니다.

기타 접근법

1. __declspec(dllexport) 사용:

클래스 또는 함수 정의 앞에 __declspec(dllexport) 또는 __declspec(dllimport)를 수동으로 추가하여 기호를 명시적으로 내보내거나 가져옵니다.

2. 모듈 정의 파일(.def) 만들기:

함수 선언을 포함하거나 정적 라이브러리에서 기호를 내보내는 .def 파일을 작성합니다.

CMake 솔루션의 장점

  • 수동 주석이나 .def 없이 모든 기호 자동 내보내기
  • 다양한 플랫폼에 대한 빌드 스크립트를 생성하는 CMake의 기능으로 인한 교차 플랫폼 호환성.
  • 빌드 프로세스를 단순화하여 수동 개입이 필요하지 않습니다.

위 내용은 Visual Studio에서 DLL을 빌드할 때 CMake가 모든 기호를 자동으로 내보낼 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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