C ++ 라이브러리와의 연결에는 많은 번거 로움이 필요하며 올바르게 수행하려면 많은 지식과 노력이 필요합니다. C ++ 학습자들에게 위협이 될 수 있습니다.
종종 특정 C ++ 라이브러리의 제작자 / 관리자가이를 염두에두고 어떤 방법 으로든 권장합니다.
즉, 작성자 / 유지 업체가 라이브러리를 헤더 (* .h 및 .hpp 만 해당)로 포함 시키거나 소스 ( .h * 또는 .c )로 포함 시키려는 경우 읽어보기에서 매우 명확하게 말했을 것입니다. 또는 문서.
크로스 플랫폼으로 설계되고 유지 관리되는 (및 여러 C ++ 컴파일러 공급 업체 및 환경과 호환되는) 라이브러리에는 종종 makefile 시스템 또는 빌드 구성 시스템 (예 : CMake)이 있습니다. 이러한 시스템은 플랫폼 차이를 완화하는 헤더 shim을 생성하고 올바른 명령 행 옵션을 사용하여 올바른 순서로 소스 파일에서 컴파일러와 링커를 호출하는 스크립트를 생성하는 데 사용됩니다. 플랫폼 및 구성에 따라 이러한 빌드 시스템은 특정 헤더 또는 소스 파일을 포함하거나 제외하거나 특정 전 처리기 기호를 정의하거나 정의하지 않을 수 있습니다.
저자 / 유지 업체 권장 사항에 반하는 것이 가능하지만 항상 광범위한 포팅 노력이 필요합니다. 해당 포팅 작업에 필요한 작업량은 다른 C ++ 환경으로 포팅하는 것과 비슷할 수 있습니다.
Visual C ++는 프로젝트 설명 파일 (부분 XML 기반)을 기반으로하는 자체 빌드 시스템을 사용하기 때문에 Linux에서 사용되는 스크립팅 기반 빌드 시스템과는 다릅니다. CMake에서 사용하는 방식은 CMake가 구성 설정을 가져 와서 * .vcxproj 파일에 구워진 구성 옵션을 사용하여 전체 Visual C ++ 프로젝트 구조를 내보내는 것입니다.
Visual C ++와의 C ++ 연결 중에 문제가 발생하면 Visual Studio GUI를 사용하여 프로젝트 속성 페이지 대화 상자를 사용하여 * .vcxproj 파일의 빌드 설정을 수정할 수 있습니다. 이것은 12 가지 중요한 C ++ 컴파일 및 링크 설정의 의미와 결과를 완전히 이해한다고 가정합니다.
이제 Visual C ++ 사용의 가장 어리석은 부분이 있습니다. 수십 개의 다른 타사 라이브러리를 사용하는 경우 모든 빌드 설정을 변경하면 각 * .vcxproj 파일로 이동하고 GUI에서 수십 동안 동일한 변경을 반복해야합니다 타임스. 번거롭지 만 올바르게 수행하는 방법을 알고 있다면 완료 할 수 있습니다.
대부분의 Visual C ++ 학습자는 오류 코드로 식별되는 Visual C ++ 컴파일러 및 링커 오류를 관찰하여 이러한 설정을 어려운 방식으로 학습합니다. 예를 들어, "기호 기호가 두 번 이상 정의되었습니다"라는 피상적 인 의미로 LNK2005를 조회 할 수 있지만, 중복 정의가 부주의 한 프로그래밍 실수로 발생하지 않는다는 것을 이해하면 일부는 컴파일 및 링크 옵션의 충돌 또는 오용
상황에 대해보다 구체적이고 유용한 답변을 제공하려면 사용하려는 라이브러리의 이름과 연결 오류 또는 발생하는 기타 어려움을 알아야합니다. 해당 라이브러리의 토론 게시판에서 해당 질문에 대한 기존 답변을 찾을 수 있습니다. 이러한 질문은 "링크 문제", "창"및 "시각적 C ++"로 태그되는 경향이 있습니다.
이 문제에 대한 초보자부터 전문가까지의 가이드가 가능하지만 프로젝트마다 다를 것입니다. 다른 프로젝트에서 선택한 다른 환경 설정은 가이드를 완전히 다시 작성해야합니다.