문제 해결#
프로그램을 실행하는 중에 예외가 발생했습니다. 예외 메시지:
BaslerGTC/Basler/GenTL_Producer_for_Basler_blaze_101_camera를 생성할 수 없습니다.
이유: pylon Supplementary Package for blaze 에서 제공하는 blaze 카메라용 GenTL 프로듀서를 찾을 수 없습니다.
해결 방법: 다음 사항을 확인하십시오: GENICAM_GENTL64_PATH 환경 변수가 올바르게 설정되어 있습니다. 이 변수에는 다음 폴더가 포함되어 있어야 합니다:
Windows: <PYLON_ROOT>/Runtime/x64
Linux: <PYLON_ROOT>/lib/gentlproducer/gtl
You can use the pylon-setup-env.sh script, located in the <PYLON_ROOT>/bin directory. To set up the environment for a pylon installation in /opt/pylon, execute:
If you want the environment to be persistent, you can add
to ~/.bashrcIf you do not use this script, you will have to set up your environment as follows:
CMake는 수많은 경고를 출력합니다.
이유: PCL 버전에 따라 PCL의 CMake 구성 파일로 인해 많은 경고가 발생합니다.
해결 방법: Basler blaze 샘플을 빌드하고 실행하는 목적에서는 일반적으로 이러한 경고는 무시해도 됩니다.
다음 매개변수를 전달하면 경고의 수를 줄일 수 있습니다. -Wno-dev CMake의 명령줄 옵션.
Windows 단, OpenCV를 사용하여 샘플을 실행할 때 opencv_world*.dll 파일이 없어 오류가 발생합니다.
이유: OpenCV의 경로는 PATH 환경 변수에 추가합니다.
해결 방법: OpenCV 설치 경로를 다음 파일에 추가해야 합니다. PATH 환경 변수에 추가합니다. PATH 환경 변수에 OpenCV 추가하기.
Windows 단, PCL을 사용하여 샘플을 실행하면 OpenNI2.dll 파일이 없어 오류가 발생합니다.
이유: PCL 올인원 설치 프로그램이 OpenNI2.dll 파일을 PATH에 포함되지 않은 위치에 설치합니다.
해결 방법: PCL 설치 프로그램은 ‘ DLL ’를 %ProgramFiles%\OpenNI2\Redist 폴더. 이 폴더를 다음 위치에 추가하거나 PATH 환경 변수 또는 복사 OpenNI2.dll PCL 바이너리가 있는 폴더로, 예를 들어, %ProgamFiles%\PCL 1.11.1\bin.
Windows 단, PCL을 사용하는 샘플의 경우 다음 상황에서 빌드에 실패합니다. CMAKE_BUILD_TYPE 이 다음으로 설정된 경우 RelWithDebInfo, 또는 다음으로 빌드된 샘플 CMAKE_BUILD_TYPE 다음을 다음으로 설정: RelWithDebInfo 실행 시 오류가 발생합니다.
이유: PCL의 RelWithDebInfo 구성이 잘못되었습니다. PCL이 시각화 작업에 사용하는 VTK 라이브러리의 릴리스 버전이 아닌 디버그 버전이 링크되어 있습니다. 이로 인해 Microsoft C++ 런타임 라이브러리의 디버그 버전과 릴리스 버전을 모두 참조하는 라이브러리가 혼재하게 되며, 이로 인해 링커가 실행 파일을 링크하지 못하거나 실행 시 충돌이 발생합니다.
해법 1: 선택하세요 Release 대신에 RelWithDebInfo.
참고
Visual Studio의 CMake 지원 기능은 CMake 빌드 유형을 자동으로 RelWithDebInfo ~를 생성할 때 Release 빌드 구성. 다음을 편집해야 합니다. CMakeSettings.json 파일을 수동으로 열고 다음의 값을 변경하십시오. configurationType ~에서 ~ 필드 RelWithDebInfo 에서 Release.
해결책 2:
- 의 복사본을 생성합니다.
%ProgramFiles%\PCL x.y.z\3rdParty\VTK\lib\cmake\vtk-x.y\VTK-Targets-debug.cmake파일. - 복사본의 이름을 변경하세요
VTK-Targets-relwithdebinfo.cmake. - 텍스트 편집기로 파일을 열고, 다음이 나타나는 모든 부분을
RELEASE작성자:RELWITHDEBINFO. - CMake 캐시를 지우고 캐시를 다시 생성하십시오.
화면 프레임 속도가 낮습니다.
이유: 디버그 모드에서는 컴파일러가 최적화 없이 코드를 생성합니다.
해결 방법: 애플리케이션이 릴리스 모드로 빌드되었는지 확인하십시오.
Windows 단, 링커에서 32비트 라이브러리와 64비트 라이브러리가 혼용되었다는 오류 메시지가 표시됩니다.
이유: 애플리케이션을 링크할 때는 모든 바이너리가 32비트이거나 64비트여야 합니다. 하나의 실행 파일에 32비트 라이브러리와 64비트 라이브러리를 혼합하여 사용할 수는 없습니다.
해결 방법: Visual Studio 솔루션 파일을 생성할 때, OpenCV 및 PCL 라이브러리가 빌드된 플랫폼(x86 또는 x64)과 동일한 플랫폼을 대상으로 지정해야 합니다.
애플리케이션이 충돌하거나 강제 종료된 후에는, device is already connected 응용 프로그램을 다시 시작할 때 오류 메시지가 표시됩니다.
이유: 애플리케이션이 예기치 않게 종료되면 카메라와의 연결을 더 이상 종료할 수 없습니다. 카메라는 GigE Vision 하트비트 타임아웃이 만료될 때까지 대기한 후, 새로운 연결을 수락합니다.
일반적으로 이 현상은 디버거 환경에서 애플리케이션을 실행 중이고 Pylon 7.0 이하 버전을 사용할 때 발생합니다. Pylon의 최신 버전에서는 프로그램 종료 시 카메라 연결이 자동으로 끊어집니다.
해결 방법: 하트비트 타임아웃을 늘렸거나, Pylon 7.0 이하 버전을 사용 중이며 디버거 환경에서 애플리케이션을 실행하고 있는 경우, 카메라의 전원을 껐다가 다시 켜거나 잠시 동안 카메라를 네트워크에서 분리해야 합니다.
GigE Vision 하트비트 타임아웃을 제어하는 방법에 대한 자세한 내용은 “C++ 애플리케이션 디버깅 및 GigE Vision 하트비트 제어 ” 또는 “.NET 애플리케이션 디버깅 및 GigE Vision 하트비트 제어 ” 섹션을 참조하십시오.